pub fn reduce_trace<G, T1, Bu, T2, L>(
trace: &Arranged<G, T1>,
name: &str,
logic: L,
) -> Arranged<G, TraceAgent<T2>>where
G: Scope<Timestamp = T1::Time>,
T1: TraceReader<KeyOwn: Ord> + Clone + 'static,
T2: for<'a> Trace<Key<'a> = T1::Key<'a>, KeyOwn = T1::KeyOwn, ValOwn: Data, Time = T1::Time> + 'static,
Bu: Builder<Time = T2::Time, Output = T2::Batch, Input: Container + PushInto<((T1::KeyOwn, T2::ValOwn), T2::Time, T2::Diff)>>,
L: FnMut(T1::Key<'_>, &[(T1::Val<'_>, T1::Diff)], &mut Vec<(T2::ValOwn, T2::Diff)>, &mut Vec<(T2::ValOwn, T2::Diff)>) + 'static,
Expand description
A key-wise reduction of values in an input trace.
This method exists to provide reduce functionality without opinions about qualifying trace types.