pub fn reduce_with_tactic<'scope, Tr1, Tr2, T>(
trace: Arranged<'scope, Tr1>,
name: &str,
tactic: T,
) -> Arranged<'scope, TraceAgent<Tr2>>where
Tr1: TraceReader + 'static,
Tr2: Trace<Time = Tr1::Time> + 'static,
T: ReduceTactic<Tr1::Batch, Tr2::Batch> + 'static,Expand description
Drives a key-wise reduction using a supplied ReduceTactic.
This is the general reduce operator: it does the dataflow plumbing (frontiers, capabilities, output
trace maintenance) and routes the per-interval work through the tactic. It requires only
TraceReader of its input and Trace of its output, never Navigable: it extracts batches via
batches_through, and building cursors over them (if that is how the reduce proceeds) is the
tactic’s concern.