pub fn extract<U, I, FShip, FKept>(
merged: I,
upper: AntichainRef<'_, U::Time>,
frontier: &mut Antichain<U::Time>,
ship: FShip,
kept: FKept,
)where
U: Update,
U::Time: 'static,
I: IntoIterator<Item = UpdatesTyped<U>>,
FShip: FnMut(UpdatesTyped<U>),
FKept: FnMut(UpdatesTyped<U>),Expand description
Partition merged into chunks ready to ship (times strictly less than upper)
and chunks kept for future seals (times at-or-after upper), updating
frontier to the antichain of kept times. merged is consumed lazily,
and outputs flow through ship / kept sinks so the caller can spill or
forward as chunks are produced rather than buffering them.