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", so this trait is not object safe.