Skip to main content

Module builder_input

Module builder_input 

Source
Expand description

BuilderInput impls for ColumnBody and Column so DD Builders can drain a batcher’s chunks without an extra container conversion.

Mirrors the impl on ColumnationStack at columnation.rs, but the Item<'a> here is a columnar Ref tuple rather than a borrowed owned tuple, so:

  • Key<'a> / Val<'a> are Ref<'a, K> / Ref<'a, V> — no Owned round-trip on the read side.
  • Time / Diff materialize as owned on into_parts (the trait contract requires owned for these).

Distinct-counts (key_val_upd_counts) tally per chunk and sum, accepting at most chain.len() over-counts at chunk boundaries. The downstream consumer uses these as capacity hints, so a small over-estimate is cheaper than the alternative (snapshotting K::Owned / V::Owned across chunk boundaries).

The body impl serves the chunk batchers, whose chains are bodies. The column impl serves the column pager’s batcher, whose chains are still edge containers.