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");
Convert enum to string by interpreting the members as flags.