pub trait AbstractEnvironment<V, D: AbstractDomain>: AbstractDomain {
type ContainerType;
// Required methods
fn bindings(&self) -> Option<&Self::ContainerType>;
fn into_bindings(self) -> Option<Self::ContainerType>;
fn len(&self) -> usize;
fn is_empty(&self) -> bool;
fn get(&self, variable: &V) -> Cow<'_, D>;
fn set(&mut self, variable: V, domain: D);
fn update(&mut self, variable: &V, op: impl FnOnce(&mut D));
}Required Associated Types§
type ContainerType
Required Methods§
fn bindings(&self) -> Option<&Self::ContainerType>
fn into_bindings(self) -> Option<Self::ContainerType>
fn len(&self) -> usize
fn is_empty(&self) -> bool
fn get(&self, variable: &V) -> Cow<'_, D>
fn set(&mut self, variable: V, domain: D)
fn update(&mut self, variable: &V, op: impl FnOnce(&mut D))
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".