pub struct ColumnationMerger<T> { /* private fields */ }
Expand description
A merger for timely stacks
Trait Implementations§
source§impl<T> Default for ColumnationMerger<T>
impl<T> Default for ColumnationMerger<T>
source§impl<K, V, T, R> Merger for ColumnationMerger<((K, V), T, R)>where
K: Columnation + Ord + Data,
V: Columnation + Ord + Data,
T: Columnation + Ord + PartialOrder + Data,
R: Columnation + Semigroup + 'static,
impl<K, V, T, R> Merger for ColumnationMerger<((K, V), T, R)>where
K: Columnation + Ord + Data,
V: Columnation + Ord + Data,
T: Columnation + Ord + PartialOrder + Data,
R: Columnation + Semigroup + 'static,
§type Chunk = TimelyStack<((K, V), T, R)>
type Chunk = TimelyStack<((K, V), T, R)>
The internal representation of chunks of data.
§type Output = ((K, V), T, R)
type Output = ((K, V), T, R)
The output type
TODO: This should be replaced by
Chunk
or another container once the builder understands
building from a complete chain.source§fn accept(
&mut self,
container: RefOrMut<'_, Self::Input>,
stash: &mut Vec<Self::Chunk>
) -> Vec<Self::Chunk>
fn accept( &mut self, container: RefOrMut<'_, Self::Input>, stash: &mut Vec<Self::Chunk> ) -> Vec<Self::Chunk>
Accept a fresh container of input data.
source§fn finish(&mut self, stash: &mut Vec<Self::Chunk>) -> Vec<Self::Chunk>
fn finish(&mut self, stash: &mut Vec<Self::Chunk>) -> Vec<Self::Chunk>
Finish processing any stashed data.
source§fn merge(
&mut self,
list1: Vec<Self::Chunk>,
list2: Vec<Self::Chunk>,
output: &mut Vec<Self::Chunk>,
stash: &mut Vec<Self::Chunk>
)
fn merge( &mut self, list1: Vec<Self::Chunk>, list2: Vec<Self::Chunk>, output: &mut Vec<Self::Chunk>, stash: &mut Vec<Self::Chunk> )
Merge chains into an output chain.
source§fn extract(
&mut self,
merged: Vec<Self::Chunk>,
upper: AntichainRef<'_, Self::Time>,
frontier: &mut Antichain<Self::Time>,
readied: &mut Vec<Self::Chunk>,
kept: &mut Vec<Self::Chunk>,
stash: &mut Vec<Self::Chunk>
)
fn extract( &mut self, merged: Vec<Self::Chunk>, upper: AntichainRef<'_, Self::Time>, frontier: &mut Antichain<Self::Time>, readied: &mut Vec<Self::Chunk>, kept: &mut Vec<Self::Chunk>, stash: &mut Vec<Self::Chunk> )
Extract ready updates based on the
upper
frontier.source§fn seal<B: Builder<Input = Self::Output, Time = Self::Time>>(
chain: &mut Vec<Self::Chunk>,
lower: AntichainRef<'_, Self::Time>,
upper: AntichainRef<'_, Self::Time>,
since: AntichainRef<'_, Self::Time>
) -> B::Output
fn seal<B: Builder<Input = Self::Output, Time = Self::Time>>( chain: &mut Vec<Self::Chunk>, lower: AntichainRef<'_, Self::Time>, upper: AntichainRef<'_, Self::Time>, since: AntichainRef<'_, Self::Time> ) -> B::Output
Build from a chain
TODO: We can move this entirely to
MergeBatcher
once builders can accepts chains.Auto Trait Implementations§
impl<T> Freeze for ColumnationMerger<T>
impl<T> RefUnwindSafe for ColumnationMerger<T>where
T: RefUnwindSafe,
impl<T> Send for ColumnationMerger<T>where
T: Send,
impl<T> Sync for ColumnationMerger<T>where
T: Sync,
impl<T> Unpin for ColumnationMerger<T>where
T: Unpin,
impl<T> UnwindSafe for ColumnationMerger<T>where
T: 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.