validate

Validates data according to its type’s constraints

validate
(
bool bailOut = false
T
)
()
if (
is(T == struct) ||
is(T == class)
)

Examples

struct Person
{
    @notEmpty
    string name;

    @notNegative
    int age;
}

auto personA = Person("Somebody", 32);
ValidationResult!Person rA = validate(personA);
assert(rA.ok);
assert(rA.data.name == "Somebody"); // accessing validated data

auto personB = Person("", 32);
ValidationResult!Person rB = validate(personB);
assert(!rB.ok);

auto personC = Person("Tom", -1);
ValidationResult!Person rC = validate(personC);
assert(!rC.ok);

Meta