pub struct OrdValBatch<L: Layout> {
pub storage: OrdValStorage<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: OrdValStorage<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 OrdValBatch<L>
impl<L: Layout> Batch for OrdValBatch<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 OrdValBatch<L>
impl<L: Layout> BatchReader for OrdValBatch<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 Val<'a> = <<L as Layout>::ValContainer as BatchContainer>::ReadItem<'a>
type Val<'a> = <<L as Layout>::ValContainer as BatchContainer>::ReadItem<'a>
Values associated with keys.
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 OrdValBatch<L>where
L::KeyContainer: Serialize + for<'a> Deserialize<'a>,
L::ValContainer: 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 OrdValBatch<L>where
L::KeyContainer: Serialize + for<'a> Deserialize<'a>,
L::ValContainer: 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 OrdValBatch<L>where
L::KeyContainer: Serialize + for<'a> Deserialize<'a>,
L::ValContainer: 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 OrdValBatch<L>where
L::KeyContainer: Serialize + for<'a> Deserialize<'a>,
L::ValContainer: 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 OrdValBatch<L>where
<L as Layout>::KeyContainer: Freeze,
<L as Layout>::OffsetContainer: Freeze,
<L as Layout>::ValContainer: Freeze,
<L as Layout>::TimeContainer: Freeze,
<L as Layout>::DiffContainer: Freeze,
<<L as Layout>::Target as Update>::Time: Freeze,
impl<L> RefUnwindSafe for OrdValBatch<L>where
<L as Layout>::KeyContainer: RefUnwindSafe,
<L as Layout>::OffsetContainer: RefUnwindSafe,
<L as Layout>::ValContainer: RefUnwindSafe,
<L as Layout>::TimeContainer: RefUnwindSafe,
<L as Layout>::DiffContainer: RefUnwindSafe,
<<L as Layout>::Target as Update>::Time: RefUnwindSafe,
impl<L> Send for OrdValBatch<L>where
<L as Layout>::KeyContainer: Send,
<L as Layout>::OffsetContainer: Send,
<L as Layout>::ValContainer: Send,
<L as Layout>::TimeContainer: Send,
<L as Layout>::DiffContainer: Send,
impl<L> Sync for OrdValBatch<L>where
<L as Layout>::KeyContainer: Sync,
<L as Layout>::OffsetContainer: Sync,
<L as Layout>::ValContainer: Sync,
<L as Layout>::TimeContainer: Sync,
<L as Layout>::DiffContainer: Sync,
<<L as Layout>::Target as Update>::Time: Sync,
impl<L> Unpin for OrdValBatch<L>where
<L as Layout>::KeyContainer: Unpin,
<L as Layout>::OffsetContainer: Unpin,
<L as Layout>::ValContainer: Unpin,
<L as Layout>::TimeContainer: Unpin,
<L as Layout>::DiffContainer: Unpin,
<<L as Layout>::Target as Update>::Time: Unpin,
impl<L> UnwindSafe for OrdValBatch<L>where
<L as Layout>::KeyContainer: UnwindSafe,
<L as Layout>::OffsetContainer: UnwindSafe,
<L as Layout>::ValContainer: 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.