Trait differential_dataflow::trace::Merger
[−]
[src]
pub trait Merger<K, V, T, R, Output: Batch<K, V, T, R>> { fn work(
&mut self,
source1: &Output,
source2: &Output,
frontier: &Option<Vec<T>>,
fuel: &mut usize
); fn done(self) -> Output; }
Represents a merge in progress.
Required Methods
fn work(
&mut self,
source1: &Output,
source2: &Output,
frontier: &Option<Vec<T>>,
fuel: &mut usize
)
&mut self,
source1: &Output,
source2: &Output,
frontier: &Option<Vec<T>>,
fuel: &mut usize
)
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
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, V, T, R> Merger<K, V, T, R, OrdValBatch<K, V, T, R>> for OrdValMerger<K, V, T, R> where
K: Ord + Clone + 'static,
V: Ord + Clone + 'static,
T: Lattice + Ord + Clone + Debug + 'static,
R: Diff,impl<K, T, R> Merger<K, (), T, R, OrdKeyBatch<K, T, R>> for OrdKeyMerger<K, T, R> where
K: Ord + Clone + 'static,
T: Lattice + Ord + Clone + 'static,
R: Diff,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>
impl<K, V, T, R, B: Batch<K, V, T, R> + Abomonation> Merger<K, V, T, R, Abomonated<B, Vec<u8>>> for AbomonatedMerger<K, V, T, R, B>