License
BSD-3-Clause
The struct-column layer of ddn.df (ADR-2026-10-23-13/-14): named field chunks in children[i] with parent validity marking whole-struct nulls, distinct from a valid struct of null fields. Field order is pinned by the metadata's fields; duplicate names are construction errors.
Builds one STRUCT chunk from field chunks: each field's chunk must carry exactly length elements (validated); the parent's validity marks whole-struct nulls; field values under a null parent are never read.
private string[] _fieldsprivate ArrayData[] _fieldChunksprivate ulong[] _validityprivate size_t _lengthprivate bool _anyNullprivate bool _sealedthis(string[] fields)Params: fields = the ordered field names (duplicates rejected at finish)void validateStructChunk(const ArrayData chunk) @safeValidates a STRUCT chunk: field count matches the metadata, field chunks carry the parent's length, no duplicate names.Series structField(Series s, string name) @trustedExtracts one field as its own Series (the field chunks gathered into one Series of the field's dtype).ArrayData combineStructValidity(const ArrayData parent,
const ArrayData win) @trusted pure nothrowSeries structSeries(string name, string[] fieldNames,
Series[] fields) @trustedBuilds a STRUCT Series from its field Series (equal lengths, ordered names).ArrayData structTake(const ArrayData[] chunks,
const size_t[] chunkStarts, const(size_t)[] indices,
DataType dtype) @trusted