Trait mz_compute::extensions::reduce::MzReduce

source ·
pub(crate) trait MzReduce<G: Scope, T1: TraceReader<Time = G::Timestamp>>
where G::Timestamp: Lattice + Ord,
{ // Required method fn mz_reduce_abelian<L, K, V, Bu, T2>( &self, name: &str, logic: L, ) -> Arranged<G, TraceAgent<T2>> where T2: for<'a> Trace<Key<'a> = T1::Key<'a>, Time = G::Timestamp> + 'static, K: Data, V: Data, for<'a> T1::Key<'a>: IntoOwned<'a, Owned = K>, for<'a> T2::Val<'a>: IntoOwned<'a, Owned = V>, T2::Diff: Abelian, T2::Batch: Batch, Bu: Builder<Time = G::Timestamp, Output = T2::Batch>, Bu::Input: Container + PushInto<((K, V), T2::Time, T2::Diff)>, L: FnMut(T1::Key<'_>, &[(T1::Val<'_>, T1::Diff)], &mut Vec<(V, T2::Diff)>) + 'static, Arranged<G, TraceAgent<T2>>: ArrangementSize; }
Expand description

Extension trait for the reduce_abelian differential dataflow method.

Required Methods§

source

fn mz_reduce_abelian<L, K, V, Bu, T2>( &self, name: &str, logic: L, ) -> Arranged<G, TraceAgent<T2>>
where T2: for<'a> Trace<Key<'a> = T1::Key<'a>, Time = G::Timestamp> + 'static, K: Data, V: Data, for<'a> T1::Key<'a>: IntoOwned<'a, Owned = K>, for<'a> T2::Val<'a>: IntoOwned<'a, Owned = V>, T2::Diff: Abelian, T2::Batch: Batch, Bu: Builder<Time = G::Timestamp, Output = T2::Batch>, Bu::Input: Container + PushInto<((K, V), T2::Time, T2::Diff)>, L: FnMut(T1::Key<'_>, &[(T1::Val<'_>, T1::Diff)], &mut Vec<(V, T2::Diff)>) + 'static, Arranged<G, TraceAgent<T2>>: ArrangementSize,

Applies reduce to arranged data, and returns an arrangement of output data.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<G, T1> MzReduce<G, T1> for Arranged<G, T1>
where G::Timestamp: Lattice + Ord, G: Scope, T1: TraceReader<Time = G::Timestamp> + Clone + 'static, T1::Diff: Semigroup,

source§

fn mz_reduce_abelian<L, K, V, Bu, T2>( &self, name: &str, logic: L, ) -> Arranged<G, TraceAgent<T2>>
where T2: for<'a> Trace<Key<'a> = T1::Key<'a>, Time = G::Timestamp> + 'static, K: Data, V: Data, for<'a> T1::Key<'a>: IntoOwned<'a, Owned = K>, for<'a> T2::Val<'a>: IntoOwned<'a, Owned = V>, T2::Diff: Abelian, T2::Batch: Batch, Bu: Builder<Time = G::Timestamp, Output = T2::Batch>, Bu::Input: Container + PushInto<((K, V), T2::Time, T2::Diff)>, L: FnMut(T1::Key<'_>, &[(T1::Val<'_>, T1::Diff)], &mut Vec<(V, T2::Diff)>) + 'static, Arranged<G, TraceAgent<T2>>: ArrangementSize,

Applies reduce to arranged data, and returns an arrangement of output data.

Implementors§