Skip to main content

MzReduce

Trait MzReduce 

Source
pub(crate) trait MzReduce<'scope, T1: TraceReader> {
    // Required method
    fn mz_reduce_abelian<L, Bu, T2>(
        self,
        name: &str,
        logic: L,
    ) -> Arranged<'scope, TraceAgent<T2>>
       where T2: for<'a> Trace<Key<'a> = T1::Key<'a>, ValOwn: Data, Time = T1::Time, Diff: Abelian> + 'static,
             Bu: Builder<Time = T1::Time, Output = T2::Batch>,
             Bu::Input: Container + Default + ClearContainer + PushInto<((<<T1 as LayoutExt>::KeyContainer as BatchContainer>::Owned, T2::ValOwn), T2::Time, T2::Diff)>,
             L: FnMut(T1::Key<'_>, &[(T1::Val<'_>, T1::Diff)], &mut Vec<(T2::ValOwn, T2::Diff)>) + 'static,
             Arranged<'scope, TraceAgent<T2>>: ArrangementSize;
}
Expand description

Extension trait for the reduce_abelian differential dataflow method.

Required Methods§

Source

fn mz_reduce_abelian<L, Bu, T2>( self, name: &str, logic: L, ) -> Arranged<'scope, TraceAgent<T2>>
where T2: for<'a> Trace<Key<'a> = T1::Key<'a>, ValOwn: Data, Time = T1::Time, Diff: Abelian> + 'static, Bu: Builder<Time = T1::Time, Output = T2::Batch>, Bu::Input: Container + Default + ClearContainer + PushInto<((<<T1 as LayoutExt>::KeyContainer as BatchContainer>::Owned, T2::ValOwn), T2::Time, T2::Diff)>, L: FnMut(T1::Key<'_>, &[(T1::Val<'_>, T1::Diff)], &mut Vec<(T2::ValOwn, T2::Diff)>) + 'static, Arranged<'scope, TraceAgent<T2>>: ArrangementSize,

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

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, T1> MzReduce<'scope, T1> for Arranged<'scope, T1>
where T1: TraceReader + Clone + 'static,

Source§

fn mz_reduce_abelian<L, Bu, T2>( self, name: &str, logic: L, ) -> Arranged<'scope, TraceAgent<T2>>
where T2: for<'a> Trace<Key<'a> = T1::Key<'a>, ValOwn: Data, Time = T1::Time, Diff: Abelian> + 'static, Bu: Builder<Time = T1::Time, Input: Container + Default + ClearContainer + PushInto<((<<T1 as LayoutExt>::KeyContainer as BatchContainer>::Owned, T2::ValOwn), T2::Time, T2::Diff)>, Output = T2::Batch>, L: FnMut(T1::Key<'_>, &[(T1::Val<'_>, T1::Diff)], &mut Vec<(T2::ValOwn, T2::Diff)>) + 'static, Arranged<'scope, TraceAgent<T2>>: ArrangementSize,

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

Implementors§