struct ConstraintLocalEnv<'a, T: Types> {
declarations: String,
symbols: HashMap<String, T::Var>,
global_symbols: &'a HashMap<String, T::Var>,
}Expand description
Declarations active in a single constraint’s solver scope (as a string to send to Z3), and maps to decode its response back to T.
Fields§
§declarations: String§symbols: HashMap<String, T::Var>§global_symbols: &'a HashMap<String, T::Var>Implementations§
Source§impl<'a, T: Types> ConstraintLocalEnv<'a, T>
impl<'a, T: Types> ConstraintLocalEnv<'a, T>
fn new( globals: &'a ConstraintGlobalEnv<T>, binder_consts: &[ConstDecl<T>], binders: &[(T::Var, Sort<T>)], ) -> Self
fn symbol(&self, name: &str) -> Option<&T::Var>
fn decode(&self, sexp: &Sexp) -> Result<Expr<T>, SuggestionSolverError>
fn decode_symbol(&self, name: &str) -> Result<Expr<T>, SuggestionSolverError>
fn decode_application( &self, items: &[Sexp], ) -> Result<Expr<T>, SuggestionSolverError>
Auto Trait Implementations§
impl<'a, T> DynSend for ConstraintLocalEnv<'a, T>
impl<'a, T> DynSync for ConstraintLocalEnv<'a, T>
impl<'a, T> Freeze for ConstraintLocalEnv<'a, T>
impl<'a, T> RefUnwindSafe for ConstraintLocalEnv<'a, T>where
HashMap<String, <T as Types>::Var>: RefUnwindSafe,
&'a HashMap<String, <T as Types>::Var>: RefUnwindSafe,
impl<'a, T> Send for ConstraintLocalEnv<'a, T>
impl<'a, T> Sync for ConstraintLocalEnv<'a, T>
impl<'a, T> Unpin for ConstraintLocalEnv<'a, T>
impl<'a, T> UnsafeUnpin for ConstraintLocalEnv<'a, T>where
HashMap<String, <T as Types>::Var>: UnsafeUnpin,
&'a HashMap<String, <T as Types>::Var>: UnsafeUnpin,
impl<'a, T> UnwindSafe for ConstraintLocalEnv<'a, T>where
HashMap<String, <T as Types>::Var>: UnwindSafe,
&'a HashMap<String, <T as Types>::Var>: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more