pub trait UnificationStore: Index<usize, Output = VarValue<<Self as UnificationStore>::Key>> + Clone + Default {
    type Key: UnifyKey<Value = Self::Value>;
    type Value: UnifyValue;
    type Snapshot;

    fn start_snapshot(&mut self) -> Self::Snapshot;
    fn rollback_to(&mut self, snapshot: Self::Snapshot);
    fn commit(&mut self, snapshot: Self::Snapshot);
    fn reset_unifications(
        &mut self,
        value: impl FnMut(u32) -> VarValue<Self::Key>
    ); fn len(&self) -> usize; fn push(&mut self, value: VarValue<Self::Key>); fn reserve(&mut self, num_new_values: usize); fn update<F>(&mut self, index: usize, op: F)
    where
        F: FnOnce(&mut VarValue<Self::Key>)
; fn tag() -> &'static str { ... } }
Expand description

Largely internal trait implemented by the unification table backing store types. The most common such type is InPlace, which indicates a standard, mutable unification table.

Required Associated Types

Required Methods

Provided Methods

Implementors