processOptions

Call this method on the result of parseArgs to execute validations and validation hooks.

Options
processOptions
(
Options
)
(
Options options
)

Examples

import std.exception :
    assertThrown,
    enforce;

struct Tester
{
    @Validate!(value => enforce(value == 1))
    int a = 1;

    @Validate!((value, options) => enforce(value == 2 * options.a))
    int b = 2;

    string[] calls;

    @PostValidate(Priority.low)
    void priorityLow() {
        calls ~= "priorityLow";
    }

    @PostValidate(Priority.medium)
    void priorityMedium() {
        calls ~= "priorityMedium";
    }

    @PostValidate(Priority.high)
    void priorityHigh() {
        calls ~= "priorityHigh";
    }
}

Tester options;

options = processOptions(options);

assert(options.calls == [
    "priorityHigh",
    "priorityMedium",
    "priorityLow",
]);

options.a = 2;

assertThrown!Exception(processOptions(options));

Meta