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 = TimelyStack<((K, V), T, R)>
type Output = TimelyStack<((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 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<'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
.