PreValidate

An @ArgValidator that runs the given Func during pre-binding validation.

@ArgValidator
struct PreValidate (
alias Func
) {}

Members

Functions

onPreValidate
Result!void onPreValidate(string arg)
Undocumented in source. Be warned that the author may not have intended to support it.

Parameters

Func

The function that provides validation on an argument.

Examples

static struct S
{
    @PreValidate!(str => Result!void.failureIf(str.length != 3, "Number must be 3 digits long."))
    @PostValidate!(i => Result!void.failureIf(i <= 200, "Number must be larger than 200."))   
    int arg;
}

alias Binder = ArgBinder!(jaster.cli.binder);
alias UDAs   = __traits(getAttributes, S.arg);

assert(Binder.bind!(int, UDAs)("20").isFailure);
assert(Binder.bind!(int, UDAs)("199").isFailure);
assert(Binder.bind!(int, UDAs)("300").asSuccess.value == 300);

Meta