Struct differential_dataflow::trace::layers::ordered::OrderedLayer
source · pub struct OrderedLayer<K, L, O = usize, C = Vec<K>>where
K: Ord,
C: BatchContainer<Item = K>,
O: OrdOffset,{
pub keys: C,
pub offs: Vec<O>,
pub vals: L,
}
Expand description
A level of the trie, with keys and offsets into a lower layer.
In this representation, the values for keys[i]
are found at vals[offs[i] .. offs[i+1]]
.
Fields§
§keys: C
The keys of the layer.
offs: Vec<O>
The offsets associate with each key.
The bounds for keys[i]
are (offs[i], offs[i+1]
). The offset array is guaranteed to be one
element longer than the keys array, ensuring that these accesses do not panic.
vals: L
The ranges of values associated with the keys.
Trait Implementations§
source§impl<K, L, O, C> Abomonation for OrderedLayer<K, L, O, C>where
K: Ord,
C: BatchContainer<Item = K> + Abomonation,
O: OrdOffset + Abomonation,
Vec<O>: Abomonation,
L: Abomonation,
impl<K, L, O, C> Abomonation for OrderedLayer<K, L, O, C>where K: Ord, C: BatchContainer<Item = K> + Abomonation, O: OrdOffset + Abomonation, Vec<O>: Abomonation, L: Abomonation,
source§impl<K, L: Clone, O, C> Clone for OrderedLayer<K, L, O, C>where
K: Ord + Clone,
C: BatchContainer<Item = K> + Clone,
O: OrdOffset + Clone,
impl<K, L: Clone, O, C> Clone for OrderedLayer<K, L, O, C>where K: Ord + Clone, C: BatchContainer<Item = K> + Clone, O: OrdOffset + Clone,
source§fn clone(&self) -> OrderedLayer<K, L, O, C>
fn clone(&self) -> OrderedLayer<K, L, O, C>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<K, L, O, C> Cursor<OrderedLayer<K, L, O, C>> for OrderedCursor<L>where
K: Ord,
C: BatchContainer<Item = K>,
L: Trie,
O: OrdOffset,
impl<K, L, O, C> Cursor<OrderedLayer<K, L, O, C>> for OrderedCursor<L>where K: Ord, C: BatchContainer<Item = K>, L: Trie, O: OrdOffset,
source§fn key<'a>(&self, storage: &'a OrderedLayer<K, L, O, C>) -> &'a Self::Key
fn key<'a>(&self, storage: &'a OrderedLayer<K, L, O, C>) -> &'a Self::Key
Reveals the current key.
source§fn step(&mut self, storage: &OrderedLayer<K, L, O, C>)
fn step(&mut self, storage: &OrderedLayer<K, L, O, C>)
Advances the cursor by one element.
source§fn seek(&mut self, storage: &OrderedLayer<K, L, O, C>, key: &Self::Key)
fn seek(&mut self, storage: &OrderedLayer<K, L, O, C>, key: &Self::Key)
Advances the cursor until the location where
key
would be expected.source§fn valid(&self, _storage: &OrderedLayer<K, L, O, C>) -> bool
fn valid(&self, _storage: &OrderedLayer<K, L, O, C>) -> bool
Returns
true
if the cursor points at valid data. Returns false
if the cursor is exhausted.source§fn rewind(&mut self, storage: &OrderedLayer<K, L, O, C>)
fn rewind(&mut self, storage: &OrderedLayer<K, L, O, C>)
Rewinds the cursor to its initial state.
source§fn reposition(
&mut self,
storage: &OrderedLayer<K, L, O, C>,
lower: usize,
upper: usize
)
fn reposition( &mut self, storage: &OrderedLayer<K, L, O, C>, lower: usize, upper: usize )
Repositions the cursor to a different range of values.
source§impl<K, L: Debug, O, C> Debug for OrderedLayer<K, L, O, C>where
K: Ord + Debug,
C: BatchContainer<Item = K> + Debug,
O: OrdOffset + Debug,
impl<K, L: Debug, O, C> Debug for OrderedLayer<K, L, O, C>where K: Ord + Debug, C: BatchContainer<Item = K> + Debug, O: OrdOffset + Debug,
source§impl<K, L: PartialEq, O, C> PartialEq for OrderedLayer<K, L, O, C>where
K: Ord + PartialEq,
C: BatchContainer<Item = K> + PartialEq,
O: OrdOffset + PartialEq,
impl<K, L: PartialEq, O, C> PartialEq for OrderedLayer<K, L, O, C>where K: Ord + PartialEq, C: BatchContainer<Item = K> + PartialEq, O: OrdOffset + PartialEq,
source§fn eq(&self, other: &OrderedLayer<K, L, O, C>) -> bool
fn eq(&self, other: &OrderedLayer<K, L, O, C>) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl<K, L, O, C> Trie for OrderedLayer<K, L, O, C>where
K: Ord + Clone,
C: BatchContainer<Item = K>,
L: Trie,
O: OrdOffset,
impl<K, L, O, C> Trie for OrderedLayer<K, L, O, C>where K: Ord + Clone, C: BatchContainer<Item = K>, L: Trie, O: OrdOffset,
§type Cursor = OrderedCursor<L>
type Cursor = OrderedCursor<L>
The type of cursor used to navigate the type.
§type MergeBuilder = OrderedBuilder<K, <L as Trie>::MergeBuilder, O, C>
type MergeBuilder = OrderedBuilder<K, <L as Trie>::MergeBuilder, O, C>
The type used to merge instances of the type together.
§type TupleBuilder = OrderedBuilder<K, <L as Trie>::TupleBuilder, O, C>
type TupleBuilder = OrderedBuilder<K, <L as Trie>::TupleBuilder, O, C>
The type used to assemble instances of the type from its
Item
s.source§fn keys(&self) -> usize
fn keys(&self) -> usize
The number of distinct keys, as distinct from the total number of tuples.
impl<K, L: Eq, O, C> Eq for OrderedLayer<K, L, O, C>where K: Ord + Eq, C: BatchContainer<Item = K> + Eq, O: OrdOffset + Eq,
impl<K, L, O, C> StructuralEq for OrderedLayer<K, L, O, C>where K: Ord, C: BatchContainer<Item = K>, O: OrdOffset,
impl<K, L, O, C> StructuralPartialEq for OrderedLayer<K, L, O, C>where K: Ord, C: BatchContainer<Item = K>, O: OrdOffset,
Auto Trait Implementations§
impl<K, L, O, C> RefUnwindSafe for OrderedLayer<K, L, O, C>where C: RefUnwindSafe, L: RefUnwindSafe, O: RefUnwindSafe,
impl<K, L, O, C> Send for OrderedLayer<K, L, O, C>where C: Send, L: Send, O: Send,
impl<K, L, O, C> Sync for OrderedLayer<K, L, O, C>where C: Sync, L: Sync, O: Sync,
impl<K, L, O, C> Unpin for OrderedLayer<K, L, O, C>where C: Unpin, L: Unpin, O: Unpin,
impl<K, L, O, C> UnwindSafe for OrderedLayer<K, L, O, C>where C: UnwindSafe, L: UnwindSafe, O: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more