Restrict allowed values
In some cases an argument can receive one of the limited set of values. This can be achieved by adding .AllowedValues!()
to UDA:
import argparse;
struct T
{
@(NamedArgument.AllowedValues!(["apple","pear","banana"]))
string fruit;
}
T t;
assert(CLI!T.parseArgs(t, ["--fruit", "apple"]));
assert(t == T("apple"));
// "kiwi" is not allowed
assert(!CLI!T.parseArgs(t, ["--fruit", "kiwi"]));
For the value that is not in the allowed list, this error will be printed:
Last modified: 09 November 2024