Paste: stringtoenum
Author: | blei |
Mode: | text |
Date: | Wed, 25 Apr 2012 18:36:56 |
Plain Text |
import printer.(println);
[T when Enum?(T)]
stringToEnum(#T, s) {
..for (i in staticIntegers(EnumMemberCount(T))) {
if (s == EnumMemberName(T, i)) {
return Maybe(intToEnum(T, i));
}
}
return nothing(T);
}
enum FooEnum (FOO, BAR, BAZ);
main() {
println(stringToEnum(FooEnum, "FOO"));
println(stringToEnum(FooEnum, "BAZ"));
println(stringToEnum(FooEnum, "garbl"));
}
Author: | blei |
Mode: | text |
Date: | Wed, 25 Apr 2012 18:43:52 |
Plain Text |
import printer.(println);
[T when Enum?(T)]
stringToEnum(#T, s) {
..for (i in staticIntegers(#EnumMemberCount(T))) {
if (s == EnumMemberName(T, i)) {
return Maybe(intToEnum(T, Int32(unwrapStatic(i))));
}
}
return nothing(T);
}
enum FooEnum (FOO, BAR, BAZ);
main() {
println(stringToEnum(FooEnum, "FOO"));
println(stringToEnum(FooEnum, "BAZ"));
println(stringToEnum(FooEnum, "garbl"));
}
New Annotation