Trait differential_dataflow::trace::Merger [−][src]
Represents a merge in progress.
Required methods
fn new(
source1: &Output,
source2: &Output,
compaction_frontier: Option<AntichainRef<'_, T>>
) -> Self
[src]
source1: &Output,
source2: &Output,
compaction_frontier: Option<AntichainRef<'_, T>>
) -> Self
Creates a new merger to merge the supplied batches, optionally compacting up to the supplied frontier.
fn work(&mut self, source1: &Output, source2: &Output, fuel: &mut isize)
[src]
Perform some amount of work, decrementing fuel
.
If fuel
is non-zero after the call, the merging is complete and
one should call done
to extract the merged results.
fn done(self) -> Output
[src]
Extracts merged results.
This method should only be called after work
has been called and
has not brought fuel
to zero. Otherwise, the merge is still in
progress.
Implementors
impl<K, T, R, O> Merger<K, (), T, R, OrdKeyBatch<K, T, R, O>> for OrdKeyMerger<K, T, R, O> where
K: Ord + Clone + 'static,
T: Lattice + Timestamp + Ord + Clone + 'static,
R: Semigroup,
O: OrdOffset,
<O as TryFrom<usize>>::Error: Debug,
<O as TryInto<usize>>::Error: Debug,
[src]
K: Ord + Clone + 'static,
T: Lattice + Timestamp + Ord + Clone + 'static,
R: Semigroup,
O: OrdOffset,
<O as TryFrom<usize>>::Error: Debug,
<O as TryInto<usize>>::Error: Debug,
fn new(
batch1: &OrdKeyBatch<K, T, R, O>,
batch2: &OrdKeyBatch<K, T, R, O>,
compaction_frontier: Option<AntichainRef<'_, T>>
) -> Self
[src]
batch1: &OrdKeyBatch<K, T, R, O>,
batch2: &OrdKeyBatch<K, T, R, O>,
compaction_frontier: Option<AntichainRef<'_, T>>
) -> Self
fn done(self) -> OrdKeyBatch<K, T, R, O>
[src]
fn work(
&mut self,
source1: &OrdKeyBatch<K, T, R, O>,
source2: &OrdKeyBatch<K, T, R, O>,
fuel: &mut isize
)
[src]
&mut self,
source1: &OrdKeyBatch<K, T, R, O>,
source2: &OrdKeyBatch<K, T, R, O>,
fuel: &mut isize
)
impl<K, V, T, R, B: Batch<K, V, T, R> + Abomonation> Merger<K, V, T, R, Abomonated<B, Vec<u8, Global>>> for AbomonatedMerger<K, V, T, R, B>
[src]
Represents a merge in progress.
fn new(
source1: &Abomonated<B, Vec<u8>>,
source2: &Abomonated<B, Vec<u8>>,
compaction_frontier: Option<AntichainRef<'_, T>>
) -> Self
[src]
source1: &Abomonated<B, Vec<u8>>,
source2: &Abomonated<B, Vec<u8>>,
compaction_frontier: Option<AntichainRef<'_, T>>
) -> Self
fn work(
&mut self,
source1: &Abomonated<B, Vec<u8>>,
source2: &Abomonated<B, Vec<u8>>,
fuel: &mut isize
)
[src]
&mut self,
source1: &Abomonated<B, Vec<u8>>,
source2: &Abomonated<B, Vec<u8>>,
fuel: &mut isize
)
fn done(self) -> Abomonated<B, Vec<u8>>
[src]
impl<K, V, T, R, B: Batch<K, V, T, R>> Merger<K, V, T, R, Rc<B>> for RcMerger<K, V, T, R, B>
[src]
Represents a merge in progress.
fn new(
source1: &Rc<B>,
source2: &Rc<B>,
compaction_frontier: Option<AntichainRef<'_, T>>
) -> Self
[src]
source1: &Rc<B>,
source2: &Rc<B>,
compaction_frontier: Option<AntichainRef<'_, T>>
) -> Self
fn work(&mut self, source1: &Rc<B>, source2: &Rc<B>, fuel: &mut isize)
[src]
fn done(self) -> Rc<B>
[src]
impl<K, V, T, R, O> Merger<K, V, T, R, OrdValBatch<K, V, T, R, O>> for OrdValMerger<K, V, T, R, O> where
K: Ord + Clone + 'static,
V: Ord + Clone + 'static,
T: Lattice + Timestamp + Ord + Clone + Debug + 'static,
R: Semigroup,
O: OrdOffset,
<O as TryFrom<usize>>::Error: Debug,
<O as TryInto<usize>>::Error: Debug,
[src]
K: Ord + Clone + 'static,
V: Ord + Clone + 'static,
T: Lattice + Timestamp + Ord + Clone + Debug + 'static,
R: Semigroup,
O: OrdOffset,
<O as TryFrom<usize>>::Error: Debug,
<O as TryInto<usize>>::Error: Debug,
fn new(
batch1: &OrdValBatch<K, V, T, R, O>,
batch2: &OrdValBatch<K, V, T, R, O>,
compaction_frontier: Option<AntichainRef<'_, T>>
) -> Self
[src]
batch1: &OrdValBatch<K, V, T, R, O>,
batch2: &OrdValBatch<K, V, T, R, O>,
compaction_frontier: Option<AntichainRef<'_, T>>
) -> Self
fn done(self) -> OrdValBatch<K, V, T, R, O>
[src]
fn work(
&mut self,
source1: &OrdValBatch<K, V, T, R, O>,
source2: &OrdValBatch<K, V, T, R, O>,
fuel: &mut isize
)
[src]
&mut self,
source1: &OrdValBatch<K, V, T, R, O>,
source2: &OrdValBatch<K, V, T, R, O>,
fuel: &mut isize
)