differential_dataflow::trace

Trait Batcher

Source
pub trait Batcher {
    type Input;
    type Output;
    type Time: Timestamp;

    // Required methods
    fn new(
        logger: Option<Logger<DifferentialEvent, WorkerIdentifier>>,
        operator_id: usize,
    ) -> Self;
    fn push_container(&mut self, batch: RefOrMut<'_, Self::Input>);
    fn seal<B: Builder<Input = Self::Output, Time = Self::Time>>(
        &mut self,
        upper: Antichain<Self::Time>,
    ) -> B::Output;
    fn frontier(&mut self) -> AntichainRef<'_, Self::Time>;
}
Expand description

Functionality for collecting and batching updates.

Required Associated Types§

Source

type Input

Type pushed into the batcher.

Source

type Output

Type produced by the batcher.

Source

type Time: Timestamp

Times at which batches are formed.

Required Methods§

Source

fn new( logger: Option<Logger<DifferentialEvent, WorkerIdentifier>>, operator_id: usize, ) -> Self

Allocates a new empty batcher.

Source

fn push_container(&mut self, batch: RefOrMut<'_, Self::Input>)

Adds an unordered container of elements to the batcher.

Source

fn seal<B: Builder<Input = Self::Output, Time = Self::Time>>( &mut self, upper: Antichain<Self::Time>, ) -> B::Output

Returns all updates not greater or equal to an element of upper.

Source

fn frontier(&mut self) -> AntichainRef<'_, Self::Time>

Returns the lower envelope of contained update times.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<Input, C, M, T> Batcher for MergeBatcher<Input, C, M, T>
where C: ContainerBuilder<Container = M::Chunk> + Default + for<'a> PushInto<RefOrMut<'a, Input>>, M: Merger<Time = T>, T: Timestamp,

Source§

type Input = Input

Source§

type Output = <M as Merger>::Output

Source§

type Time = T