pub trait Store {
type Var: Var;
// Required methods
fn create_term<T>(
&mut self,
id: u32,
args: T,
types: &[Self::Var],
ret_type: &Self::Var,
sort: u8,
def: bool,
) -> KResult<PackedPtr>
where T: IntoIterator<Item = PackedPtr> + Clone;
fn alloc_var(&mut self, ty: Self::Var, idx: u16) -> PackedPtr;
fn alloc_conv(&mut self, l: PackedPtr, r: PackedPtr) -> PackedPtr;
fn clear(&mut self);
fn get_type_of_expr(&self, ptr: Ptr) -> Option<&Self::Var>;
fn get_element(&self, ptr: Ptr) -> Option<ElementRef<'_, Self::Var>>;
fn get<'a, T: TryFrom<ElementRef<'a, Self::Var>, Error = Kind>>(
&'a self,
ptr: Ptr,
) -> KResult<T>;
}Required Associated Types§
Required Methods§
fn create_term<T>( &mut self, id: u32, args: T, types: &[Self::Var], ret_type: &Self::Var, sort: u8, def: bool, ) -> KResult<PackedPtr>
fn alloc_var(&mut self, ty: Self::Var, idx: u16) -> PackedPtr
fn alloc_conv(&mut self, l: PackedPtr, r: PackedPtr) -> PackedPtr
fn clear(&mut self)
fn get_type_of_expr(&self, ptr: Ptr) -> Option<&Self::Var>
fn get_element(&self, ptr: Ptr) -> Option<ElementRef<'_, Self::Var>>
fn get<'a, T: TryFrom<ElementRef<'a, Self::Var>, Error = Kind>>( &'a self, ptr: Ptr, ) -> KResult<T>
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.