Struct differential_dataflow::trace::layers::hashed::HashedLayer[][src]

pub struct HashedLayer<K: HashOrdered, L> {
    pub keys: Vec<Entry<K>>,
    pub vals: L,
}

A level of the trie, with keys and offsets into a lower layer.

If keys[i].1 == 0 then entry i should be ignored. This is our version of Option<(K, usize)>, which comes at the cost of requiring K: Default to populate empty keys.

Each region of this layer is an independent immutable RHH map, whose size should equal something like (1 << i) + i for some value of i. The first (1 << i) elements are where we expect to find keys, and the remaining i are for spill-over due to collisions near the end of the first region.

We might do something like "if X or fewer elements, just use an ordered list".

Fields

Keys and offsets for the keys.

A lower layer containing ranges of values.

Trait Implementations

impl<K: Debug + HashOrdered, L: Debug> Debug for HashedLayer<K, L>
[src]

Formats the value using the given formatter. Read more

impl<K: Clone + HashOrdered + Default, L: Trie> Trie for HashedLayer<K, L>
[src]

The type of item from which the type is constructed.

The type of cursor used to navigate the type.

The type used to merge instances of the type together.

The type used to assemble instances of the type from its Items.

The number of distinct keys, as distinct from the total number of tuples.

The total number of tuples in the collection.

Returns a cursor over a range of data, commonly used by others to restrict navigation to sub-collections. Read more

Returns a cursor capable of navigating the collection.

Merges two collections into a third. Read more

impl<K: HashOrdered, L: Trie> Cursor<HashedLayer<K, L>> for HashedCursor<L>
[src]

The type revealed by the cursor.

Reveals the current key.

Advances the cursor by one element.

Advances the cursor until the location where key would be expected.

Returns true if the cursor points at valid data. Returns false if the cursor is exhausted.

Rewinds the cursor to its initial state.

Repositions the cursor to a different range of values.

Auto Trait Implementations

impl<K, L> Send for HashedLayer<K, L> where
    K: Send,
    L: Send

impl<K, L> Sync for HashedLayer<K, L> where
    K: Sync,
    L: Sync