On 10/6/10 14:18 CDT, Tomek Sowiński wrote:
I remember using defineEnum a few times. From user perspective you have enum names as strings that forms a nasty mixin, not to mention you can't Ddoc single enum values. It felt like stone age. Then I took a look at how it's implemented and saw a bunch of unreadable templates glueing together the content of an unholy string mixin.But instead of complaining I took time to devise something nicer: enum Eh { Ah, Oh, Uh } // plain vanilla enum mixin EnumUtils!Eh; // that's all you need, magic happens here assert (enumToString(Eh.Ah) == "Ah"); assert (enumToString(cast(Eh)666) == null); Eh eh; assert (enumFromString("Oh", eh)); assert (eh == Eh.Oh); assert (!enumFromString("Heh", eh)); Do you want the EnumUtils template in Phobos? If so, how to contribute?
That's a good contribution, but I just deprecated enumToString in a recent commit because D's current introspection abilities made it easy to define parse and to!string to manipulate enum names.
I'll be looking forward to other goodies! Andrei
