pub fn generate_with_overlay<'g, S: RowStream + 'g>(
start_at: Option<&OwnedRow>,
rows: S,
constraint: Option<&Constraint>,
overlay: Option<&Overlay>,
last_pushed_epoch: u32,
sort: &Sort,
gate_sort: &Sort,
reverse: bool,
predicate: Option<&RowPredicate>,
multi_constraints: &[MultiConstraint],
) -> RowFlow<'g>Expand description
Drive a leaf cursor through the epoch-gated, narrowed, ordered overlay splice
(generateWithOverlay, memory-source.ts:697). Generic over the leaf
S: RowStream — the seam both backends feed. Two comparators, one per job:
sort is the index comparator the splice interleaves under (the
break-safety dependency, §3.1 — it must match the scan order of rows);
gate_sort is the connection comparator the start_at narrowing compares
under (it must match the downstream generate_with_start gate — see
overlays_for_start_at’s comparator invariant). They coincide except on a
constrained scan, where the index sort leads with the constraint columns.
start_at, constraint, predicate, multi_constraints narrow the overlay
only (the committed rows are filtered later by generate_with_filter).