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.
Examples
#![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`");
}
}
}