pub fn split_into_stream_batches(geometry: &[u8]) -> Option<Vec<ReplayBatch>>Expand description
Split a cached geometry blob into its batches for a CROSS-BATCH client (#5407): each batch keeps its whole-stream offsets and states the bases its vertex and index tables start at, exactly as the live cross-batch stream does. Works on a blob either kind of stream wrote, because a batch-local stream’s cache rows are whole-stream too and simply never point backwards.
The batches are the MESH table’s row groups; the vertex and index tables
are not split by theirs. A batch whose every row points back emits no
vertices, and an empty write adds no row group, so those two tables can
hold fewer groups than there were batches. What locates a batch’s slice
instead is the planner’s own invariant: a batch appends its new shapes
contiguously at the running end, and every shape it emits is referenced by
one of its rows, so the batch ends at the furthest range its rows name.
The spans must tile both tables exactly, or the blob is refused (None).