string_deref_patterns

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,
    }
}
}