pub fn flat_map_datums<'scope, T, DCB, L>(
edge: Collection<'scope, T, Column<(Row, T, Diff)>>,
max_demand: usize,
logic: L,
) -> (Stream<'scope, T, DCB::Container>, StreamVec<'scope, T, (DataflowErrorSer, T, Diff)>)where
T: RenderTimestamp,
DCB: ContainerBuilder,
L: for<'a> FnMut(&'a mut DatumVecBorrow<'_>, T, Diff, &mut Session<'_, '_, T, DCB, Capability<T>>, &mut Session<'_, '_, T, ConsolidatingContainerBuilder<Vec<(DataflowErrorSer, T, Diff)>>, Capability<T>>) -> usize + 'static,Expand description
Applies logic to each record in edge, exposing the record as a borrowed
DatumVecBorrow and giving it ok and err output sessions.
max_demand bounds the number of columns decoded per row. Pass usize::MAX
to decode all columns.
This is the canonical entry point for “decoding consumers” (operators that
read mz_repr::Datums from each row anyway). It iterates the columnar
batch directly without going through an owned Row.