Mixins are for mixing generated code into the source code. The mixed-in code may be generated as a template instance or a string.
Code can also be inserted into the program as a string import.
We have seen in the templates and more templates chapters that templates define code as a pattern, for the compiler to generate actual instances from that pattern. Templates can generate functions, structs, unions, classes, interfaces, and any other legal D code.
Template mixins insert instantiations of templates into the code by the
As you will see in the example below, the
mixin keyword is used in the definitions of template mixins as well.
For the specific set of template parameters, the instantiation of the template is inserted into the source code right where the
mixin keyword appears.
For example, let’s take a template that defines both an array of edges and a pair of functions that operate on those edges: