pub fn reduce_trace<G, T1, T2, L>(
trace: &Arranged<G, T1>,
name: &str,
logic: L,
) -> Arranged<G, TraceAgent<T2>>where
G: Scope,
G::Timestamp: Lattice + Ord,
T1: TraceReader<Time = G::Timestamp> + Clone + 'static,
T1::Diff: Semigroup,
T2: for<'a> Trace<Key<'a> = T1::Key<'a>, Time = G::Timestamp> + 'static,
T2::ValOwned: Data,
T2::Diff: Semigroup,
T2::Batch: Batch,
T2::Builder: Builder<Output = T2::Batch, Item = ((T1::KeyOwned, T2::ValOwned), T2::Time, T2::Diff)>,
L: FnMut(T1::Key<'_>, &[(T1::Val<'_>, T1::Diff)], &mut Vec<(T2::ValOwned, T2::Diff)>, &mut Vec<(T2::ValOwned, 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.