Struct ena::unify::UnificationTable [] [src]

pub struct UnificationTable<K: UnifyKey> { /* fields omitted */ }

Table of unification keys and their values.

Methods

impl<K: UnifyKey> UnificationTable<K>
[src]

Starts a new snapshot. Each snapshot must be either rolled back or committed in a "LIFO" (stack) order.

Reverses all changes since the last snapshot. Also removes any keys that have been created since then.

Commits all changes since the last snapshot. Of course, they can still be undone if there is a snapshot further out.

Creates a fresh key with the given value.

Returns an iterator over all keys unioned with key.

Returns the number of keys created so far.

impl<'tcx, K, V> UnificationTable<K> where
    K: UnifyKey<Value = V>,
    V: UnifyValue
[src]

//////////////////////////////////////////////////////////////////////// Public API

Unions two keys without the possibility of failure; only applicable when unify values use NoError as their error type.

Unions a key and a value without the possibility of failure; only applicable when unify values use NoError as their error type.

Given two keys, indicates whether they have been unioned together.

Given a key, returns the (current) root key.

Unions together two variables, merging their values. If merging the values fails, the error is propagated and this method has no effect.

Sets the value of the key a_id to b, attempting to merge with the previous value.

Returns the current value for the given key. If the key has been union'd, this will give the value from the current root.

Trait Implementations

impl<K: Clone + UnifyKey> Clone for UnificationTable<K>
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more