The tracking issue for this feature is: #87121
This feature permits pattern matching String
to &str
through its Deref
implementation.
#![allow(unused)]
#![feature(string_deref_patterns)]
fn main() {
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.
#![allow(unused)]
fn main() {
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,
}
}
}