ddn.columnar.convert

The cast layer of ddn.df: converting chunks between dtypes (D12; ADR-2026-10-18-05).

Casts are strict by default: out-of-range numeric conversion or an unparsable string throws DataFrameException; with strict = false those elements become null. Nulls are always preserved. INT64 and the temporal kinds reinterpret the physical value (zero copy); STRING renders through to!string and the ddn.datetime formatters.

Functions 16

fnArrayData castChunk(const ArrayData chunk, DataType target, bool strict = true)Casts one chunk to the target dtype.
private fnArrayData castKernel(Kind K)(const ArrayData chunk, DataType target, bool strict)
private fnvoid fail(bool strict, string what)
private fnvoid unsupported(string from, string to)
private fnArrayData castToBoolean(Kind K, V)(V view, const ArrayData chunk)
private fnArrayData castToInt(Kind K, T, V)(V view, const ArrayData chunk, Kind targetKind, bool strict)
private fnbool inRange(T, F)(F v) @safe pure nothrow
private fnArrayData castToFloat(Kind K, F, V)(V view, const ArrayData chunk, Kind targetKind, bool strict)
private fnArrayData castToString(Kind K, V)(V view, const ArrayData chunk)
private fnArrayData castToTemporal(Kind K, V)(V view, const ArrayData chunk, Kind targetKind, bool strict)
private fnArrayData castToDate(Kind K, V)(V view, const ArrayData chunk, bool strict)
private fnArrayData castToDuration(Kind K, V)(V view, const ArrayData chunk, bool strict)
fnNullable!int parseIsoDate(scope const(char)[] text) @safe pure nothrow
fnNullable!long parseIsoDuration(scope const(char)[] text) @safe pure nothrow
fnchar[] formatIsoDurationInto(long nanos, return char[] buf) @safe pure nothrow
private fnsize_t putNum(return scope char[] buf, size_t at, long v) @safe pure nothrow

Templates 2

tmplisReinterpret(Kind K)
tmplLargerOf(A, B)