Idiom #295 String to Enum
Given the enumerated type T, create a function TryStrToEnum that takes a string s as input and converts it into an enum value of type T.
Explain whether the conversion is case sensitive or not.
Explain what happens if the conversion fails.
enum MyEnum {
Foo,
Bar,
Baz,
}
impl FromStr for MyEnum{
type Err = String;
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s.to_lowercase().as_str() {
"foo" => Ok(MyEnum::Foo),
"bar" => Ok(MyEnum::Bar),
"baz" => Ok(MyEnum::Baz),
_ => Err("Could not convert str to enum".to_string())
}
}
}