////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct T { @NamedArgument int a; @(NamedArgument.Optional()) int b; @(NamedArgument.Required()) int c; @NamedArgument int d; @(NamedArgument.Required()) int e; @NamedArgument int f; } enum config = { Config config; config.addHelp = false; return config; }(); static assert(CommandArguments!T(config).arguments.arguments.length == 6); auto a = CommandArguments!T(config); assert(a.arguments.requiredGroup.arguments == [2,4]); assert(a.arguments.argsNamed == ["a":0LU, "b":1LU, "c":2LU, "d":3LU, "e":4LU, "f":5LU]); assert(a.arguments.argsPositional == []);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////