ddn.columnar.dispatch

The dispatch layer of ddn.df: static expansion of a kernel over the fourteen kinds through one textual call site (D6, D6a, D14, D15; ADR-2026-10-18-10, ADR-2026-10-18-11).

This is the shape ../ddn/doc/DDN-TYPES.md mandates, verified by the probes (facts 1, 2 and 8): kernels return through the single static foreach call site and never break out of it — break inside an unbraced static foreach over case sections double-executes the section (fact 1, probes/fact01b_static_foreach_break.d).

Functions 5

fnauto dispatch(alias kernel, Args...)(DataType dtype, Args args)Calls `kernel!K(args)` for the runtime kind of `dtype`, through a `final switch` with exactly one textual call site inside a `static foreach` over `Kinds`.
fnauto dispatchNumeric(alias kernel, Args...)(string opName, DataType dtype, Args args)The numeric-only counterpart of `dispatch`: a plain `switch` over the ten numeric kinds whose `default` throws, for kernels that only make sense for numbers (BOOLEAN, STRING and the temporal kinds ...
fnR unsupported(Kind K, R)(string op) @safe pureThe rejecting branch of a kernel for kinds it does not support: `return unsupported!(K, ArrayData)("sum")` reads as a throw with the right return type for the compiler.
private fnstring textOf(Kind k) @safe pure nothrowThe name of a kind, for error messages.
fnauto mapChunks(alias kernel, Args...)(const ArrayData[] chunks, Args args)Applies a kernel chunk-wise over an array of chunks, producing one result chunk per input chunk. `Series` operations are composed through this helper; above the row threshold and with a second thre...