[][src]Trait differential_dataflow::trace::Merger

pub trait Merger<K, V, T, R, Output: Batch<K, V, T, R>> {
    fn new(source1: &Output, source2: &Output) -> Self;
fn work(
        &mut self,
        source1: &Output,
        source2: &Output,
        frontier: &Option<Vec<T>>,
        fuel: &mut isize
    );
fn done(self) -> Output; }

Represents a merge in progress.

Required methods

fn new(source1: &Output, source2: &Output) -> Self

Creates a new merger to merge the supplied batches.

fn work(
    &mut self,
    source1: &Output,
    source2: &Output,
    frontier: &Option<Vec<T>>,
    fuel: &mut isize
)

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.

Loading content...

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 + Ord + Clone + 'static,
    R: Semigroup,
    O: OrdOffset,
    <O as TryFrom<usize>>::Error: Debug,
    <O as TryInto<usize>>::Error: Debug
[src]

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>[src]

Represents a merge in progress.

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.

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 + Ord + Clone + Debug + 'static,
    R: Semigroup,
    O: OrdOffset,
    <O as TryFrom<usize>>::Error: Debug,
    <O as TryInto<usize>>::Error: Debug
[src]

Loading content...