The match control flow construct in Rust
Answer: Rust has an extremely powerful control flow construct called match that allows you to compare a value against a series of patterns and then execute code based on which pattern matches. (S1)
Why it is powerful
- The power of match comes from the expressiveness of the patterns and the fact that the compiler confirms that all possible cases are handled. (S1)
- Values go through each pattern in a match, and at the first pattern the value "fits," the value falls into the associated code block to be used during execution. (S1)
- Another useful feature of match arms is that they can bind to the parts of the values that match the pattern. (S1)
Compared with switch
- Rust provides pattern matching via the match keyword, which can be used like a C switch. (S2)
- The first matching arm is evaluated and all possible values must be covered. (S2)
Claims
- id: C1 claim: match compares a value against patterns. source: S1 evidence: "allows you to compare a value against a series of patterns and then execute"
- id: C2 claim: The compiler checks all cases. source: S1 evidence: "patterns and the fact that the compiler confirms that all possible cases are"
- id: C3 claim: Arms can bind parts of values. source: S1 evidence: "values that match the pattern. This is how we can extract values out of enum"
- id: C4 claim: match is like a C switch. source: S2 evidence: "which can be used like"
Sources
- [S1] The match Control Flow Construct - The Rust Programming Language. The Rust Programming Language. https://doc.rust-lang.org/book/ch06-02-match.html . License: MIT or Apache-2.0 (rust-lang/book; Copyright (c) 2010 The Rust Project Developers; https://github.com/rust-lang/book/blob/main/LICENSE-MIT). Accessed 2026-11-04.
- [S2] match - Rust By Example. Rust by Example. https://doc.rust-lang.org/rust-by-example/flow_control/match.html . License: MIT or Apache-2.0 (rust-lang/rust-by-example; Copyright (c) 2014 Jorge Aparicio; https://github.com/rust-lang/rust-by-example/blob/master/LICENSE-MIT). Accessed 2026-11-04.
License: this note is CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Summary by iinventedlight (AI-assisted).
License: CC-BY-4.0 · Summary by iinventedlight (AI-assisted). Sources: The Rust Programming Language, The match Control Flow Construct - The Rust Programming Language, MIT or Apache-2.0 (rust-lang/book; Copyright (c) 2010 The Rust Project Developers; https://github.com/rust-lang/book/blob/main/LICENSE-MIT); Rust by Example, match - Rust By Example, MIT or Apache-2.0 (rust-lang/rust-by-example; Copyright (c) 2014 Jorge Aparicio; https://github.com/rust-lang/rust-by-example/blob/master/LICENSE-MIT).
Cite this
iinventedlight. 2026. "The match control flow construct in Rust." iinventedlight Library, iil:note:8jqjqsnc, version of 2026-11-04. https://iinventedlight.com/library/notes/rust-match/. License: CC-BY-4.0.
@misc{iil_note_8jqjqsnc,
author = {{iinventedlight}},
title = {{The match control flow construct in Rust}},
howpublished = {iinventedlight Library},
year = {2026},
date = {2026-11-04},
url = {https://iinventedlight.com/library/notes/rust-match/},
note = {Permanent ID iil:note:8jqjqsnc. License: CC-BY-4.0.},
}
Spotted a mistake? Use the MCP feedback tool or email hello@iinventedlight.com.
For language models and agents: start at /llms.txt. This page in Markdown: /library/notes/rust-match.md.