Trait rustc_data_structures::unify::UnificationStore
[−]
[src]
pub trait UnificationStore: Index<usize, Output = VarValue<Self::Key>> + Clone where
<Self::Key as UnifyKey>::Value == Self::Value, { type Key: UnifyKey; type Value: UnifyValue; type Snapshot; fn new() -> Self; fn start_snapshot(&mut self) -> Self::Snapshot; fn rollback_to(&mut self, snapshot: Self::Snapshot); fn commit(&mut self, snapshot: Self::Snapshot); fn len(&self) -> usize; fn push(&mut self, value: VarValue<Self::Key>); fn update<F>(&mut self, index: usize, op: F)
where
F: FnOnce(&mut VarValue<Self::Key>); fn tag() -> &'static str { ... } }
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.
Associated Types
Required Methods
fn new() -> Self
fn start_snapshot(&mut self) -> Self::Snapshot
fn rollback_to(&mut self, snapshot: Self::Snapshot)
fn commit(&mut self, snapshot: Self::Snapshot)
fn len(&self) -> usize
fn push(&mut self, value: VarValue<Self::Key>)
fn update<F>(&mut self, index: usize, op: F) where
F: FnOnce(&mut VarValue<Self::Key>),
F: FnOnce(&mut VarValue<Self::Key>),