Patterns

Patterns destructure and test values in match, if let, and guard arms.

PatternMatches
_Anything (wildcard)
nameAnything, binding the value to name
name @ innerMatch inner, also bind whole as name
Literal (42, "hi", :red)Equality with a literal
Union::Variant {...}A specific variant; .. ignores remaining fields
Union::Variant(x)Typeref variant, binding payload to x
Union::VariantUnit variant
pat1 | pat2Either pattern matches