License
BSD-3-Clause
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).
auto 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`.auto 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 ...R 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.