template getMixinRecursive(T, string name, string loopDepth)
enum getMixinRecursive =
"{ bool _AutoDataNullTest = " ~ name ~ " is null; " ~ getRawMixin!("&_AutoDataNullTest", "bool.sizeof") ~ "}" ~ (!hasAliasing!(U) ? getRawMixin!(name ~ ".ptr", name ~ ".length") : "foreach (ref _AutoDataArrayItem" ~ loopDepth ~ "; " ~ name ~ ") {" ~ getMixinRecursive!(U, "_AutoDataArrayItem" ~ loopDepth, loopDepth ~ "Item") ~ "}");