serdeIgnoreIfAggregate.serdeParseEnum

struct serdeIgnoreIfAggregate(alias pred)
@safe pure nothrow @nogc
bool
serdeParseEnum
(
E
)
(
const char[] str
,
ref E res
)

Examples

enum E
{
    @serdeKeys("A", "alpha")
    a,
    @serdeKeys("B", "beta")
    b,
    c,
}

auto e = E.c;
assert(serdeParseEnum("A", e));
assert(e == E.a);
assert(serdeParseEnum("alpha", e));
assert(e == E.a);
assert(serdeParseEnum("beta", e));
assert(e == E.b);
assert(serdeParseEnum("B", e));
assert(e == E.b);
assert(serdeParseEnum("c", e));
assert(e == E.c);

assert(!serdeParseEnum("C", e));
assert(!serdeParseEnum("Alpha", e));

Case insensitive

@serdeIgnoreCase // supported for the whole type
enum E
{
    @serdeKeys("A", "alpha")
    a,
    @serdeKeys("B", "beta")
    b,
    c,
}

auto e = E.c;
assert(serdeParseEnum("a", e));
assert(e == E.a);
assert(serdeParseEnum("alpha", e));
assert(e == E.a);
assert(serdeParseEnum("BETA", e));
assert(e == E.b);
assert(serdeParseEnum("b", e));
assert(e == E.b);
assert(serdeParseEnum("C", e));
assert(e == E.c);

Meta