Skip to main content

MzArrangeCore

Trait MzArrangeCore 

Source
pub trait MzArrangeCore<'scope> {
    type Timestamp: Timestamp + Lattice;
    type Input: Container + Clone + 'static;

    // Required method
    fn mz_arrange_core<P, Ba, Bu, Tr>(
        self,
        pact: P,
        name: &str,
    ) -> Arranged<'scope, TraceAgent<Tr>>
       where P: ParallelizationContract<Self::Timestamp, Self::Input>,
             Ba: Batcher<Input = Self::Input, Time = Self::Timestamp> + 'static,
             Bu: Builder<Time = Self::Timestamp, Input = Ba::Output, Output = Tr::Batch>,
             Tr: Trace + TraceReader<Time = Self::Timestamp> + 'static,
             Tr::Batch: Batch,
             Arranged<'scope, TraceAgent<Tr>>: ArrangementSize;
}
Expand description

Extension trait to arrange data.

Required Associated Types§

Source

type Timestamp: Timestamp + Lattice

The current scope.

Source

type Input: Container + Clone + 'static

The data input container type.

Required Methods§

Source

fn mz_arrange_core<P, Ba, Bu, Tr>( self, pact: P, name: &str, ) -> Arranged<'scope, TraceAgent<Tr>>
where P: ParallelizationContract<Self::Timestamp, Self::Input>, Ba: Batcher<Input = Self::Input, Time = Self::Timestamp> + 'static, Bu: Builder<Time = Self::Timestamp, Input = Ba::Output, Output = Tr::Batch>, Tr: Trace + TraceReader<Time = Self::Timestamp> + 'static, Tr::Batch: Batch, Arranged<'scope, TraceAgent<Tr>>: ArrangementSize,

Arranges a stream of (Key, Val) updates by Key into a trace of type Tr. Partitions the data according to pact.

This operator arranges a stream of values into a shared trace, whose contents it maintains. This trace is current for all times marked completed in the output stream, and probing this stream is the correct way to determine that times in the shared trace are committed.

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.

Implementations on Foreign Types§

Source§

impl<'scope, T, C> MzArrangeCore<'scope> for Collection<'scope, T, C>
where T: Timestamp + Lattice, C: Container + Clone + 'static,

Source§

type Timestamp = T

Source§

type Input = C

Source§

fn mz_arrange_core<P, Ba, Bu, Tr>( self, pact: P, name: &str, ) -> Arranged<'scope, TraceAgent<Tr>>
where P: ParallelizationContract<T, Self::Input>, Ba: Batcher<Input = Self::Input, Time = T> + 'static, Bu: Builder<Time = T, Input = Ba::Output, Output = Tr::Batch>, Tr: Trace + TraceReader<Time = T> + 'static, Tr::Batch: Batch, Arranged<'scope, TraceAgent<Tr>>: ArrangementSize,

Source§

impl<'scope, T, C> MzArrangeCore<'scope> for Stream<'scope, T, C>
where T: Timestamp + Lattice, C: Container + Clone + 'static,

Source§

type Timestamp = T

Source§

type Input = C

Source§

fn mz_arrange_core<P, Ba, Bu, Tr>( self, pact: P, name: &str, ) -> Arranged<'scope, TraceAgent<Tr>>
where P: ParallelizationContract<T, Self::Input>, Ba: Batcher<Input = Self::Input, Time = T> + 'static, Bu: Builder<Time = T, Input = Ba::Output, Output = Tr::Batch>, Tr: Trace + TraceReader<Time = T> + 'static, Tr::Batch: Batch, Arranged<'scope, TraceAgent<Tr>>: ArrangementSize,

Implementors§

Source§

impl<'scope, T, K, R> MzArrangeCore<'scope> for KeyCollection<'scope, T, K, R>
where T: Timestamp + Lattice, K: Clone + 'static, R: Clone + 'static,

Source§

type Timestamp = T

Source§

type Input = Vec<((K, ()), T, R)>