www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Phobos func for string -> enum member?

reply Nick Sabalausky <SeeWebsiteToContactMe semitwist.com> writes:
I'm sure it'd be easy enough to write, but does phobos have a simple way 
to convert the name of an enum member from a runtime string to the enum 
type?

Ie, something like:

enum Foobar { foo=1, bar }
Foobar a = doesThisExistInPhobos!Foobar("foo");

I'm not finding anything like it in the docs, but I'm wondering if I 
just missed it somewhere.
Oct 13 2016
next sibling parent =?UTF-8?Q?Ali_=c3=87ehreli?= <acehreli yahoo.com> writes:
On 10/13/2016 04:11 PM, Nick Sabalausky wrote:
 I'm sure it'd be easy enough to write, but does phobos have a simple way
 to convert the name of an enum member from a runtime string to the enum
 type?

 Ie, something like:

 enum Foobar { foo=1, bar }
 Foobar a = doesThisExistInPhobos!Foobar("foo");

 I'm not finding anything like it in the docs, but I'm wondering if I
 just missed it somewhere.
import std.conv; enum Foobar { foo=1, bar } void main() { assert("foo".to!Foobar == Foobar.foo); } Ali
Oct 13 2016
prev sibling parent reply "H. S. Teoh via Digitalmars-d-learn" <digitalmars-d-learn puremagic.com> writes:
On Thu, Oct 13, 2016 at 07:11:15PM -0400, Nick Sabalausky via
Digitalmars-d-learn wrote:
 I'm sure it'd be easy enough to write, but does phobos have a simple
 way to convert the name of an enum member from a runtime string to the
 enum type?
 
 Ie, something like:
 
 enum Foobar { foo=1, bar }
 Foobar a = doesThisExistInPhobos!Foobar("foo");
 
 I'm not finding anything like it in the docs, but I'm wondering if I
 just missed it somewhere.
import std.conv : to; Foobar a = "foo".to!Foobar; :-) T -- It is impossible to make anything foolproof because fools are so ingenious. -- Sammy
Oct 13 2016
parent Nick Sabalausky <SeeWebsiteToContactMe semitwist.com> writes:
On 10/13/2016 07:14 PM, H. S. Teoh via Digitalmars-d-learn wrote:
 On Thu, Oct 13, 2016 at 07:11:15PM -0400, Nick Sabalausky via
Digitalmars-d-learn wrote:
 I'm sure it'd be easy enough to write, but does phobos have a simple
 way to convert the name of an enum member from a runtime string to the
 enum type?

 Ie, something like:

 enum Foobar { foo=1, bar }
 Foobar a = doesThisExistInPhobos!Foobar("foo");

 I'm not finding anything like it in the docs, but I'm wondering if I
 just missed it somewhere.
import std.conv : to; Foobar a = "foo".to!Foobar; :-) T
Ah. Right. ;) Thanks all.
Oct 13 2016