string_deref_patterns
The tracking issue for this feature is: #87121
This feature permits pattern matching String
to &str
through its Deref
implementation.
#![feature(string_deref_patterns)] pub enum Value { String(String), Number(u32), } pub fn is_it_the_answer(value: Value) -> bool { match value { Value::String("42") => true, Value::Number(42) => true, _ => false, } }
Without this feature other constructs such as match guards have to be used.
# pub enum Value { # String(String), # Number(u32), # } # pub fn is_it_the_answer(value: Value) -> bool { match value { Value::String(s) if s == "42" => true, Value::Number(42) => true, _ => false, } }