Store

Trait Store 

Source
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§

Source

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,

Source

fn alloc_var(&mut self, ty: Self::Var, idx: u16) -> PackedPtr

Source

fn alloc_conv(&mut self, l: PackedPtr, r: PackedPtr) -> PackedPtr

Source

fn clear(&mut self)

Source

fn get_type_of_expr(&self, ptr: Ptr) -> Option<&Self::Var>

Source

fn get_element(&self, ptr: Ptr) -> Option<ElementRef<'_, Self::Var>>

Source

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.

Implementors§