Rust Enums and Pattern Matching
Rust enums model a value as one of several variants, each of which can carry different data. match handles variants exhaustively, making unhandled states visible at compile time.
Algebraic data types and exhaustive control flow with match expressions.