Bitfield-style enum to strings?
Baz via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu May 7 11:18:16 PDT 2015
On Thursday, 7 May 2015 at 17:41:10 UTC, Nick Sabalausky wrote:
> Assuming a plain old bitfield-style enum like:
>
> enum Foo {
> optionA = 1<<0;
> optionB = 1<<1;
> optionC = 1<<2;
> optionD = 1<<3;
> optionE = 1<<4;
> }
>
> Does a function already exist somewhere to take an instance of
> Foo and get a list of the switch names as strings?
>
> Something kinda like:
>
> Foo fooVar = Foo.optionB | Foo.optionD;
> assert(
> DOES_THIS_FUNC_EXIST(fooVar)
> .equals(["optionB", "optionD"])
> );
>
> Seems entirely feasible, although my traits-fu is a bit rusty.
Hi, i have a specialized struct for "bit sets" that handles the
string representation:
https://github.com/BBasile/enumset/blob/master/import/enumset.d#L242
however it's not std. Building the string is easy (cf toString())
but if it can help...
More information about the Digitalmars-d-learn
mailing list