or_patterns
The tracking issue for this feature is: #54883
The or_pattern
language feature allows |
to be arbitrarily nested within a pattern, for example, Some(A(0) | B(1 | 2))
becomes a valid pattern.
#![feature(or_patterns)] pub enum Foo { Bar, Baz, Quux, } pub fn example(maybe_foo: Option<Foo>) { match maybe_foo { Some(Foo::Bar | Foo::Baz) => { println!("The value contained `Bar` or `Baz`"); } Some(_) => { println!("The value did not contain `Bar` or `Baz`"); } None => { println!("The value was `None`"); } } }