[−][src]Struct differential_dataflow::trace::layers::hashed::HashedLayer
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: Vec<Entry<K>>
Keys and offsets for the keys.
vals: L
A lower layer containing ranges of values.
Trait Implementations
impl<K: Clone + HashOrdered + Default, L: Trie> Trie for HashedLayer<K, L>
[src]
type Item = (K, L::Item)
The type of item from which the type is constructed.
type Cursor = HashedCursor<L>
The type of cursor used to navigate the type.
type MergeBuilder = HashedBuilder<K, L::MergeBuilder>
The type used to merge instances of the type together.
type TupleBuilder = HashedBuilder<K, L::TupleBuilder>
The type used to assemble instances of the type from its Item
s.
fn keys(&self) -> usize
[src]
fn tuples(&self) -> usize
[src]
fn cursor_from(&self, lower: usize, upper: usize) -> Self::Cursor
[src]
fn cursor(&self) -> Self::Cursor
[src]
Returns a cursor capable of navigating the collection.
fn merge(&self, other: &Self) -> Self
[src]
Merges two collections into a third. Read more
impl<K: HashOrdered, L: Trie> Cursor<HashedLayer<K, L>> for HashedCursor<L>
[src]
type Key = K
The type revealed by the cursor.
fn key<'a>(&self, storage: &'a HashedLayer<K, L>) -> &'a Self::Key
[src]
fn step(&mut self, storage: &HashedLayer<K, L>)
[src]
fn seek(&mut self, storage: &HashedLayer<K, L>, key: &Self::Key)
[src]
fn valid(&self, _storage: &HashedLayer<K, L>) -> bool
[src]
fn rewind(&mut self, storage: &HashedLayer<K, L>)
[src]
fn reposition(
&mut self,
storage: &HashedLayer<K, L>,
lower: usize,
upper: usize
)
[src]
&mut self,
storage: &HashedLayer<K, L>,
lower: usize,
upper: usize
)
impl<K: Debug + HashOrdered, L: Debug> Debug for HashedLayer<K, L>
[src]
Auto Trait Implementations
impl<K, L> Send for HashedLayer<K, L> where
K: Send,
L: Send,
K: Send,
L: Send,
impl<K, L> Sync for HashedLayer<K, L> where
K: Sync,
L: Sync,
K: Sync,
L: Sync,
Blanket Implementations
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From for T
[src]
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,