Trait ena::unify::UnificationStore
source · 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.