flagsToString

Convert enum to string by interpreting the members as flags.

string
flagsToString
(
E
)
(
E e
)
if (
is(E == enum)
)

Examples

enum EnumTest
{
    a = 1,
    b = 2,
    c = 6,
    d = 24
}

assert(flagsToString(EnumTest.a) == "a");
assert(flagsToString(EnumTest.b) == "b");
assert(flagsToString(EnumTest.c) == "b|c");
assert(flagsToString(EnumTest.d) == "d");
assert(flagsToString(EnumTest.a | EnumTest.b) == "a|b");
assert(flagsToString(EnumTest.a | EnumTest.c) == "a|b|c");
assert(flagsToString(EnumTest.a | EnumTest.d) == "a|d");
assert(flagsToString(EnumTest.b | EnumTest.d) == "b|d");
assert(flagsToString(EnumTest.c | EnumTest.d) == "b|c|d");
assert(flagsToString(EnumTest.a | EnumTest.c | EnumTest.d) == "a|b|c|d");
assert(flagsToString(EnumTest.c & ~EnumTest.b) == "4");
assert(flagsToString(cast(EnumTest) 8) == "8");
assert(flagsToString(cast(EnumTest) 9) == "a|8");

Meta