pub fn try_spill_ref<C: Columnar>(
body: &ColumnBody<C>,
depth: u8,
) -> Option<ChunkHandle>Expand description
Spill a serialized copy of body into the process pool, leaving body untouched, or
None when the body stays resident.
A body stays resident when the gate set_sink_spill_enabled sets is off, when no pool is
installed, or when it is smaller than SPILL_MIN_BYTES. depth is the body’s generational
depth: it selects the stored codec and the pool’s eviction band.
For consumers that keep their own chunk representation and so cannot use ColumnChunk;
the two share the spill decision through spill_target. The encode writes straight into
the pool slot, so a spilled body costs no intermediate allocation and the caller can
ColumnBody::clear and keep its allocation. A caller that gets None back still owns
the body and must keep it resident itself.