pub trait Sorted<'st>: Into<STerm<'st>> {
type Inner: Sorted<'st>;
// Required methods
fn sort(&self) -> Sort<'st>;
fn is_sort(sort: Sort<'st>) -> bool;
fn st(&self) -> &'st Storage;
// Provided methods
fn sterm(self) -> STerm<'st> { ... }
fn term(self) -> &'st Term<'st> { ... }
fn from_dynamic(d: Dynamic<'st>) -> Self
where Self: From<(STerm<'st>, Sort<'st>)> { ... }
fn try_from_dynamic(d: Dynamic<'st>) -> Option<Self>
where Self: From<(STerm<'st>, Sort<'st>)> { ... }
fn into_dynamic(self) -> Dynamic<'st> { ... }
fn _eq(self, other: impl IntoWithStorage<'st, Self::Inner>) -> Bool<'st> { ... }
fn _neq(self, other: impl IntoWithStorage<'st, Self::Inner>) -> Bool<'st> { ... }
fn labeled(self) -> (Label<Self>, Self::Inner)
where Self::Inner: From<STerm<'st>> { ... }
}Expand description
An trait for typing STM-LIB terms.
This trait indicates that a type can construct a Term which is the
low-level primitive that is used to define expressions for the SMT solvers
to evaluate.
Required Associated Types§
Sourcetype Inner: Sorted<'st>
type Inner: Sorted<'st>
The inner type of the term. This is used for Const<'st, T>
where the inner type is T.
Required Methods§
Provided Methods§
Sourcefn sterm(self) -> STerm<'st>
fn sterm(self) -> STerm<'st>
Constructy the smtlib AST representation of the term with associated storage.
Sourcefn from_dynamic(d: Dynamic<'st>) -> Self
fn from_dynamic(d: Dynamic<'st>) -> Self
Casts a dynamically typed term into a concrete type
Sourcefn try_from_dynamic(d: Dynamic<'st>) -> Option<Self>
fn try_from_dynamic(d: Dynamic<'st>) -> Option<Self>
Casts a dynamically typed term into a concrete type iff the dynamic sort matches
Sourcefn into_dynamic(self) -> Dynamic<'st>
fn into_dynamic(self) -> Dynamic<'st>
Casts the term into a dynamic term which looses static types and stores the sort dynamically.
Sourcefn _eq(self, other: impl IntoWithStorage<'st, Self::Inner>) -> Bool<'st>
fn _eq(self, other: impl IntoWithStorage<'st, Self::Inner>) -> Bool<'st>
Construct the term representing (= self other)
Sourcefn _neq(self, other: impl IntoWithStorage<'st, Self::Inner>) -> Bool<'st>
fn _neq(self, other: impl IntoWithStorage<'st, Self::Inner>) -> Bool<'st>
Construct the term representing (distinct self other)
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".