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.
                                                          
using namespace std::literals;
enum T {
  case_0,
  case_1,
  case_2,
  case_4 = 4
};
std::optional<T> TryStrToEnum(std::string_view s) {
  if (str == "case_0"sv) return case_0;
  if (str == "case_1"sv) return case_1;
  if (str == "case_2"sv) return case_2;
  if (str == "case_4"sv) return case_4;
  return std::nullopt;
}
		
		
	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())
        }
    }
}