pub struct OrdKeyBatch<L: Layout> {
pub storage: OrdKeyStorage<L>,
pub description: Description<Time<L>>,
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<Time<L>>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: for<'a> Layout<ValContainer: BatchContainer<ReadItem<'a> = &'a ()>>> Batch for OrdKeyBatch<L>
impl<L: for<'a> Layout<ValContainer: BatchContainer<ReadItem<'a> = &'a ()>>> Batch for OrdKeyBatch<L>
Source§type Merger = OrdKeyMerger<L>
type Merger = OrdKeyMerger<L>
A type used to progressively merge batches.
Source§fn begin_merge(
&self,
other: &Self,
compaction_frontier: AntichainRef<'_, Time<L>>,
) -> Self::Merger
fn begin_merge( &self, other: &Self, compaction_frontier: AntichainRef<'_, Time<L>>, ) -> Self::Merger
Initiates the merging of consecutive batches. Read more
Source§impl<L: for<'a> Layout<ValContainer: BatchContainer<ReadItem<'a> = &'a ()>>> BatchReader for OrdKeyBatch<L>
impl<L: for<'a> Layout<ValContainer: BatchContainer<ReadItem<'a> = &'a ()>>> BatchReader for OrdKeyBatch<L>
Source§type Cursor = OrdKeyCursor<L>
type Cursor = OrdKeyCursor<L>
The type used to enumerate the batch’s contents.
Source§fn description(&self) -> &Description<Time<L>>
fn description(&self) -> &Description<Time<L>>
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> Merger<OrdKeyBatch<L>> for OrdKeyMerger<L>
impl<L: Layout> Merger<OrdKeyBatch<L>> for OrdKeyMerger<L>
Source§fn new(
batch1: &OrdKeyBatch<L>,
batch2: &OrdKeyBatch<L>,
compaction_frontier: AntichainRef<'_, Time<L>>,
) -> Self
fn new( batch1: &OrdKeyBatch<L>, batch2: &OrdKeyBatch<L>, compaction_frontier: AntichainRef<'_, Time<L>>, ) -> Self
Creates a new merger to merge the supplied batches, optionally compacting
up to the supplied frontier.
Source§fn done(self) -> OrdKeyBatch<L>
fn done(self) -> OrdKeyBatch<L>
Extracts merged results. Read more
Source§fn work(
&mut self,
source1: &OrdKeyBatch<L>,
source2: &OrdKeyBatch<L>,
fuel: &mut isize,
)
fn work( &mut self, source1: &OrdKeyBatch<L>, source2: &OrdKeyBatch<L>, fuel: &mut isize, )
Perform some amount of work, decrementing
fuel. Read moreSource§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>,
Source§impl<L: for<'a> Layout<ValContainer: BatchContainer<ReadItem<'a> = &'a ()>>> WithLayout for OrdKeyBatch<L>
impl<L: for<'a> Layout<ValContainer: BatchContainer<ReadItem<'a> = &'a ()>>> WithLayout for OrdKeyBatch<L>
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>::TimeContainer as BatchContainer>::Owned: 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>::TimeContainer as BatchContainer>::Owned: 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>::TimeContainer as BatchContainer>::Owned: 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>::TimeContainer as BatchContainer>::Owned: 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>::TimeContainer as BatchContainer>::Owned: 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<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<L> LayoutExt for Lwhere
L: WithLayout,
impl<L> LayoutExt for Lwhere
L: WithLayout,
Source§type KeyOwn = <<<L as WithLayout>::Layout as Layout>::KeyContainer as BatchContainer>::Owned
type KeyOwn = <<<L as WithLayout>::Layout as Layout>::KeyContainer as BatchContainer>::Owned
Alias for an owned key of a layout.
Source§type Key<'a> = <<<L as WithLayout>::Layout as Layout>::KeyContainer as BatchContainer>::ReadItem<'a>
type Key<'a> = <<<L as WithLayout>::Layout as Layout>::KeyContainer as BatchContainer>::ReadItem<'a>
Alias for an borrowed key of a layout.
Source§type ValOwn = <<<L as WithLayout>::Layout as Layout>::ValContainer as BatchContainer>::Owned
type ValOwn = <<<L as WithLayout>::Layout as Layout>::ValContainer as BatchContainer>::Owned
Alias for an owned val of a layout.
Source§type Val<'a> = <<<L as WithLayout>::Layout as Layout>::ValContainer as BatchContainer>::ReadItem<'a>
type Val<'a> = <<<L as WithLayout>::Layout as Layout>::ValContainer as BatchContainer>::ReadItem<'a>
Alias for an borrowed val of a layout.
Source§type Time = <<<L as WithLayout>::Layout as Layout>::TimeContainer as BatchContainer>::Owned
type Time = <<<L as WithLayout>::Layout as Layout>::TimeContainer as BatchContainer>::Owned
Alias for an owned time of a layout.
Source§type TimeGat<'a> = <<<L as WithLayout>::Layout as Layout>::TimeContainer as BatchContainer>::ReadItem<'a>
type TimeGat<'a> = <<<L as WithLayout>::Layout as Layout>::TimeContainer as BatchContainer>::ReadItem<'a>
Alias for an borrowed time of a layout.
Source§type Diff = <<<L as WithLayout>::Layout as Layout>::DiffContainer as BatchContainer>::Owned
type Diff = <<<L as WithLayout>::Layout as Layout>::DiffContainer as BatchContainer>::Owned
Alias for an owned diff of a layout.
Source§type DiffGat<'a> = <<<L as WithLayout>::Layout as Layout>::DiffContainer as BatchContainer>::ReadItem<'a>
type DiffGat<'a> = <<<L as WithLayout>::Layout as Layout>::DiffContainer as BatchContainer>::ReadItem<'a>
Alias for an borrowed diff of a layout.
Source§type KeyContainer = <<L as WithLayout>::Layout as Layout>::KeyContainer
type KeyContainer = <<L as WithLayout>::Layout as Layout>::KeyContainer
Container for update keys.
Source§type ValContainer = <<L as WithLayout>::Layout as Layout>::ValContainer
type ValContainer = <<L as WithLayout>::Layout as Layout>::ValContainer
Container for update vals.
Source§type TimeContainer = <<L as WithLayout>::Layout as Layout>::TimeContainer
type TimeContainer = <<L as WithLayout>::Layout as Layout>::TimeContainer
Container for times.
Source§type DiffContainer = <<L as WithLayout>::Layout as Layout>::DiffContainer
type DiffContainer = <<L as WithLayout>::Layout as Layout>::DiffContainer
Container for diffs.
Source§fn owned_key(key: <L as LayoutExt>::Key<'_>) -> <L as LayoutExt>::KeyOwn
fn owned_key(key: <L as LayoutExt>::Key<'_>) -> <L as LayoutExt>::KeyOwn
Construct an owned key from a reference.
Source§fn owned_val(val: <L as LayoutExt>::Val<'_>) -> <L as LayoutExt>::ValOwn
fn owned_val(val: <L as LayoutExt>::Val<'_>) -> <L as LayoutExt>::ValOwn
Construct an owned val from a reference.
Source§fn owned_time(time: <L as LayoutExt>::TimeGat<'_>) -> <L as LayoutExt>::Time
fn owned_time(time: <L as LayoutExt>::TimeGat<'_>) -> <L as LayoutExt>::Time
Construct an owned time from a reference.
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.