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: usizeThe 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: Layout> Batch for OrdKeyBatch<L>
impl<L: Layout> Batch for OrdKeyBatch<L>
Source§fn begin_merge(
&self,
other: &Self,
compaction_frontier: AntichainRef<'_, <L::Target as Update>::Time>,
) -> Self::Merger
fn begin_merge( &self, other: &Self, compaction_frontier: AntichainRef<'_, <L::Target as Update>::Time>, ) -> Self::Merger
Initiates the merging of consecutive batches. Read more
Source§impl<L: Layout> BatchReader for OrdKeyBatch<L>
impl<L: Layout> BatchReader for OrdKeyBatch<L>
Source§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§type TimeGat<'a> = <<L as Layout>::TimeContainer as BatchContainer>::ReadItem<'a>
type TimeGat<'a> = <<L as Layout>::TimeContainer as BatchContainer>::ReadItem<'a>
Borrowed form of timestamp.
Source§type DiffGat<'a> = <<L as Layout>::DiffContainer as BatchContainer>::ReadItem<'a>
type DiffGat<'a> = <<L as Layout>::DiffContainer as BatchContainer>::ReadItem<'a>
Borrowed form of update difference.
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.
Source§impl<'de, L: Layout> Deserialize<'de> for OrdKeyBatch<L>where
L::KeyContainer: Serialize + for<'a> Deserialize<'a>,
L::OffsetContainer: Serialize + for<'a> Deserialize<'a>,
L::TimeContainer: Serialize + for<'a> Deserialize<'a>,
L::DiffContainer: Serialize + for<'a> Deserialize<'a>,
impl<'de, L: Layout> Deserialize<'de> for OrdKeyBatch<L>where
L::KeyContainer: Serialize + for<'a> Deserialize<'a>,
L::OffsetContainer: Serialize + for<'a> Deserialize<'a>,
L::TimeContainer: Serialize + for<'a> Deserialize<'a>,
L::DiffContainer: Serialize + for<'a> Deserialize<'a>,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<L: Layout> Serialize for OrdKeyBatch<L>where
L::KeyContainer: Serialize + for<'a> Deserialize<'a>,
L::OffsetContainer: Serialize + for<'a> Deserialize<'a>,
L::TimeContainer: Serialize + for<'a> Deserialize<'a>,
L::DiffContainer: Serialize + for<'a> Deserialize<'a>,
impl<L: Layout> Serialize for OrdKeyBatch<L>where
L::KeyContainer: Serialize + for<'a> Deserialize<'a>,
L::OffsetContainer: Serialize + for<'a> Deserialize<'a>,
L::TimeContainer: Serialize + for<'a> Deserialize<'a>,
L::DiffContainer: Serialize + for<'a> Deserialize<'a>,
Auto Trait Implementations§
impl<L> Freeze for OrdKeyBatch<L>where
<L as Layout>::KeyContainer: Freeze,
<L as Layout>::OffsetContainer: Freeze,
<L as Layout>::TimeContainer: Freeze,
<L as Layout>::DiffContainer: Freeze,
<<L as Layout>::Target as Update>::Time: Freeze,
impl<L> RefUnwindSafe for OrdKeyBatch<L>where
<L as Layout>::KeyContainer: RefUnwindSafe,
<L as Layout>::OffsetContainer: RefUnwindSafe,
<L as Layout>::TimeContainer: RefUnwindSafe,
<L as Layout>::DiffContainer: 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>::TimeContainer: Send,
<L as Layout>::DiffContainer: Send,
impl<L> Sync for OrdKeyBatch<L>where
<L as Layout>::KeyContainer: Sync,
<L as Layout>::OffsetContainer: Sync,
<L as Layout>::TimeContainer: Sync,
<L as Layout>::DiffContainer: Sync,
<<L as Layout>::Target as Update>::Time: Sync,
impl<L> Unpin for OrdKeyBatch<L>where
<L as Layout>::KeyContainer: Unpin,
<L as Layout>::OffsetContainer: Unpin,
<L as Layout>::TimeContainer: Unpin,
<L as Layout>::DiffContainer: 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>::TimeContainer: UnwindSafe,
<L as Layout>::DiffContainer: UnwindSafe,
<<L as Layout>::Target as Update>::Time: RefUnwindSafe + 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<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
Source§fn plus_equals(&mut self, rhs: &&'a S)
fn plus_equals(&mut self, rhs: &&'a S)
The method of
std::ops::AddAssign, for types that do not implement AddAssign.