Skip to main content

Module key_segment

Module key_segment 

Source

Enums§

Identifier
A sortable identifier used to discriminate between array items – either a plain string label (“west”) or an integer (“2015”). Kept as a small union type (rather than always coercing to a string) so identifiers extracted from header labels render as the JSON type they actually are (2015, not "2015").
KeySegment
Describes where a column’s cell value lands in the (possibly nested) output row. Recursive variants wrap their continuation in Arc (not Box) to keep the type’s size finite – same reasoning as Format::Array’s Arc<Format>: Column (and therefore its key: Option<KeySegment>) is cloned repeatedly by resolve_columns() during column resolution, so an O(1) refcount bump matters here the same way it does for Format. Nothing in this tree needs Box’s unique-ownership guarantee.

Functions§

insert_key_segment
Walks segment, inserting value at the location it describes within current. current is a plain JSON object – the top-level row map for a column with no nesting, or a nested/array-item object for anything reached via Object/Array.