Struct differential_dataflow::trace::implementations::ord_neu::OrdKeyBatch
source · pub struct OrdKeyBatch<L: Layout> {
pub storage: OrdKeyStorage<L>,
pub description: Description<<L::Target as Update>::Time>,
pub updates: usize,
}
Expand description
An immutable collection of update tuples, from a contiguous interval of logical times.
The L
parameter captures how the updates should be laid out, and C
determines which
merge batcher to select.
Fields§
§storage: OrdKeyStorage<L>
The updates themselves.
description: Description<<L::Target as Update>::Time>
Description of the update times this layer represents.
updates: usize
The number of updates reflected in the batch.
We track this separately from storage
because due to the singleton optimization,
we may have many more updates than storage.updates.len()
. It should equal that
length, plus the number of singleton optimizations employed.
Trait Implementations§
source§impl<L> Abomonation for OrdKeyBatch<L>where
OrdKeyStorage<L>: Abomonation,
L: Abomonation + Layout,
Description<<L::Target as Update>::Time>: Abomonation,
impl<L> Abomonation for OrdKeyBatch<L>where
OrdKeyStorage<L>: Abomonation,
L: Abomonation + Layout,
Description<<L::Target as Update>::Time>: Abomonation,
source§impl<L: Layout> Batch for OrdKeyBatch<L>
impl<L: Layout> Batch for OrdKeyBatch<L>
source§impl<L: Layout> BatchReader for OrdKeyBatch<L>
impl<L: Layout> BatchReader for OrdKeyBatch<L>
§type Key<'a> = <<L as Layout>::KeyContainer as BatchContainer>::ReadItem<'a>
type Key<'a> = <<L as Layout>::KeyContainer as BatchContainer>::ReadItem<'a>
Key by which updates are indexed.
source§fn description(&self) -> &Description<<L::Target as Update>::Time>
fn description(&self) -> &Description<<L::Target as Update>::Time>
Describes the times of the updates in the batch.
Auto Trait Implementations§
impl<L> Freeze for OrdKeyBatch<L>where
<L as Layout>::KeyContainer: Freeze,
<L as Layout>::OffsetContainer: Freeze,
<L as Layout>::UpdContainer: Freeze,
impl<L> RefUnwindSafe for OrdKeyBatch<L>where
<L as Layout>::KeyContainer: RefUnwindSafe,
<L as Layout>::OffsetContainer: RefUnwindSafe,
<L as Layout>::UpdContainer: RefUnwindSafe,
<<L as Layout>::Target as Update>::Time: RefUnwindSafe,
impl<L> Send for OrdKeyBatch<L>where
<L as Layout>::KeyContainer: Send,
<L as Layout>::OffsetContainer: Send,
<L as Layout>::UpdContainer: Send,
impl<L> Sync for OrdKeyBatch<L>where
<L as Layout>::KeyContainer: Sync,
<L as Layout>::OffsetContainer: Sync,
<L as Layout>::UpdContainer: Sync,
impl<L> Unpin for OrdKeyBatch<L>where
<L as Layout>::KeyContainer: Unpin,
<L as Layout>::OffsetContainer: Unpin,
<L as Layout>::UpdContainer: Unpin,
<<L as Layout>::Target as Update>::Time: Unpin,
impl<L> UnwindSafe for OrdKeyBatch<L>where
<L as Layout>::KeyContainer: UnwindSafe,
<L as Layout>::OffsetContainer: UnwindSafe,
<L as Layout>::UpdContainer: UnwindSafe,
<<L as Layout>::Target as Update>::Time: 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
source§impl<R, O, T> CopyOnto<ConsecutiveOffsetPairs<R, O>> for T
impl<R, O, T> CopyOnto<ConsecutiveOffsetPairs<R, O>> for T
source§fn copy_onto(
self,
target: &mut ConsecutiveOffsetPairs<R, O>
) -> <ConsecutiveOffsetPairs<R, O> as Region>::Index
fn copy_onto( self, target: &mut ConsecutiveOffsetPairs<R, O> ) -> <ConsecutiveOffsetPairs<R, O> as Region>::Index
Copy self into the target container, returning an index that allows to
look up the corresponding read item.