pub struct RecordedUpdates<U: ColumnarUpdate> {
pub updates: Updates<U>,
pub records: usize,
pub consolidated: bool,
}Expand description
A thin wrapper around Updates that tracks the pre-consolidation record count
for timely’s exchange accounting. This wrapper is the stream container type;
the TrieChunker strips it, passing bare UpdatesTyped into the merge batcher.
Fields§
§updates: Updates<U>The trie of (key, val, time, diff) updates.
records: usizeNumber of records in updates before consolidation.
consolidated: boolWhether updates is known to be sorted and consolidated
(no duplicate (key, val, time) triples, no zero diffs).
Trait Implementations§
Source§impl<U: ColumnarUpdate> Accountable for RecordedUpdates<U>
impl<U: ColumnarUpdate> Accountable for RecordedUpdates<U>
Source§impl<U: ColumnarUpdate> Clone for RecordedUpdates<U>
impl<U: ColumnarUpdate> Clone for RecordedUpdates<U>
Source§impl<U: ColumnarUpdate> ContainerBytes for RecordedUpdates<U>
impl<U: ColumnarUpdate> ContainerBytes for RecordedUpdates<U>
Source§fn from_bytes(bytes: Bytes) -> Self
fn from_bytes(bytes: Bytes) -> Self
Wrap bytes as
Self.Source§fn length_in_bytes(&self) -> usize
fn length_in_bytes(&self) -> usize
The number of bytes required to serialize the data.
Source§fn into_bytes<W: Write>(&self, writer: &mut W)
fn into_bytes<W: Write>(&self, writer: &mut W)
Writes the binary representation into
writer.Source§impl<U: ColumnarUpdate> Default for RecordedUpdates<U>
impl<U: ColumnarUpdate> Default for RecordedUpdates<U>
Source§impl<U: Update, H: for<'a> FnMut(Ref<'a, U::Key>) -> u64> Distributor<RecordedUpdates<U>> for ValDistributor<U, H>
impl<U: Update, H: for<'a> FnMut(Ref<'a, U::Key>) -> u64> Distributor<RecordedUpdates<U>> for ValDistributor<U, H>
Source§fn partition<T: Clone, P: Push<Message<T, RecordedUpdates<U>>>>(
&mut self,
container: &mut RecordedUpdates<U>,
time: &T,
pushers: &mut [P],
)
fn partition<T: Clone, P: Push<Message<T, RecordedUpdates<U>>>>( &mut self, container: &mut RecordedUpdates<U>, time: &T, pushers: &mut [P], )
Partition the contents of
container at time into the pushers.Source§impl<K, V, T1, T2, R> Enter<T1, T2> for RecordedUpdates<(K, V, T1, R)>
impl<K, V, T1, T2, R> Enter<T1, T2> for RecordedUpdates<(K, V, T1, R)>
Source§type InnerContainer = RecordedUpdates<(K, V, T2, R)>
type InnerContainer = RecordedUpdates<(K, V, T2, R)>
The resulting container type.
Source§fn enter(self) -> Self::InnerContainer
fn enter(self) -> Self::InnerContainer
Update timestamps from
T1 to T2.Source§impl<K, V, T1, T2, R> Leave<T1, T2> for RecordedUpdates<(K, V, T1, R)>
impl<K, V, T1, T2, R> Leave<T1, T2> for RecordedUpdates<(K, V, T1, R)>
Source§type OuterContainer = RecordedUpdates<(K, V, T2, R)>
type OuterContainer = RecordedUpdates<(K, V, T2, R)>
The resulting container type.
Source§fn leave(self) -> Self::OuterContainer
fn leave(self) -> Self::OuterContainer
Update timestamps from
T1 to T2.Source§impl<T, U, H> ParallelizationContract<T, RecordedUpdates<U>> for ValPact<H>
impl<T, U, H> ParallelizationContract<T, RecordedUpdates<U>> for ValPact<H>
Source§impl<'a, U: ColumnarUpdate> PushInto<&'a mut RecordedUpdates<U>> for TrieChunker<U>
impl<'a, U: ColumnarUpdate> PushInto<&'a mut RecordedUpdates<U>> for TrieChunker<U>
Source§fn push_into(&mut self, container: &'a mut RecordedUpdates<U>)
fn push_into(&mut self, container: &'a mut RecordedUpdates<U>)
Push item into self.
Source§impl<U: Update> ResultsIn<<<U as ColumnarUpdate>::Time as Timestamp>::Summary> for RecordedUpdates<U>
impl<U: Update> ResultsIn<<<U as ColumnarUpdate>::Time as Timestamp>::Summary> for RecordedUpdates<U>
Auto Trait Implementations§
impl<U> Freeze for RecordedUpdates<U>where
<<U as ColumnarUpdate>::Key as Columnar>::Container: Freeze,
<<U as ColumnarUpdate>::Val as Columnar>::Container: Freeze,
<<U as ColumnarUpdate>::Time as Columnar>::Container: Freeze,
<<U as ColumnarUpdate>::Diff as Columnar>::Container: Freeze,
impl<U> !RefUnwindSafe for RecordedUpdates<U>
impl<U> Send for RecordedUpdates<U>
impl<U> Sync for RecordedUpdates<U>where
<<U as ColumnarUpdate>::Key as Columnar>::Container: Sync,
<<U as ColumnarUpdate>::Val as Columnar>::Container: Sync,
<<U as ColumnarUpdate>::Time as Columnar>::Container: Sync,
<<U as ColumnarUpdate>::Diff as Columnar>::Container: Sync,
impl<U> Unpin for RecordedUpdates<U>where
<<U as ColumnarUpdate>::Key as Columnar>::Container: Unpin,
<<U as ColumnarUpdate>::Val as Columnar>::Container: Unpin,
<<U as ColumnarUpdate>::Time as Columnar>::Container: Unpin,
<<U as ColumnarUpdate>::Diff as Columnar>::Container: Unpin,
impl<U> UnsafeUnpin for RecordedUpdates<U>where
<<U as ColumnarUpdate>::Key as Columnar>::Container: UnsafeUnpin,
<<U as ColumnarUpdate>::Val as Columnar>::Container: UnsafeUnpin,
<<U as ColumnarUpdate>::Time as Columnar>::Container: UnsafeUnpin,
<<U as ColumnarUpdate>::Diff as Columnar>::Container: UnsafeUnpin,
impl<U> !UnwindSafe for RecordedUpdates<U>
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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<'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.