Trait differential_dataflow::trace::Batch [] [src]

pub trait Batch<K, V, T, R>: BatchReader<K, V, T, R> where
    Self: Sized
{ type Batcher: Batcher<K, V, T, R, Self>; type Builder: Builder<K, V, T, R, Self>; fn merge(&self, other: &Self) -> Self; fn advance_ref(&self, frontier: &[T]) -> Self
    where
        K: Ord + Clone,
        V: Ord + Clone,
        T: Lattice + Ord + Clone,
        R: Diff
, { ... }
fn advance_mut(&mut self, frontier: &[T])
    where
        K: Ord + Clone,
        V: Ord + Clone,
        T: Lattice + Ord + Clone,
        R: Diff
, { ... } }

An immutable collection of updates.

Associated Types

A type used to assemble batches from disordered updates.

A type used to assemble batches from ordered update sequences.

Required Methods

Merges two consecutive batches.

Panics if self.upper() does not equal other.lower(). This is almost certainly a logic bug, as the resulting batch does not have a contiguous description. If you would like to put an empty interval between the two, you can create an empty interval and do two merges.

Provided Methods

Advance times to frontier creating a new batch.

Advance times to frontier updating this batch.

This method gives batches the ability to collapse in-place when possible, and is the common entry point to advance batches. Most types of batches do have shared state, but advance is commonly invoked just after a batch is formed from a merge and when there is a unique owner of the shared state.

Implementors