CLI Capstone
CLI Flags
Summarize Boolean Modes
Flags are often simple booleans, but combining them into a mode string makes behavior easy to report.
Program
Play the program to choose whether verbose mode is enabled.
cli_flag_summary.rs
Replay: real traced execution (multi-file project)
fn main() {
let verbose = true;
let dry_run = true;
let mode = format_mode(verbose, dry_run);
println!("{mode}");
}
fn format_mode(verbose: bool, dry_run: bool) -> String {
match (verbose, dry_run) {
(true, true) => "verbose dry-run".to_string(),
(false, true) => "quiet dry-run".to_string(),
(true, false) => "verbose live".to_string(),
(false, false) => "quiet live".to_string(),
}
}
fn main() {
let verbose = false;
let dry_run = true;
let mode = format_mode(verbose, dry_run);
println!("{mode}");
}
fn format_mode(verbose: bool, dry_run: bool) -> String {
match (verbose, dry_run) {
(true, true) => "verbose dry-run".to_string(),
(false, true) => "quiet dry-run".to_string(),
(true, false) => "verbose live".to_string(),
(false, false) => "quiet live".to_string(),
}
}
verbose ← true, dry_run ← true
1fn main() {2 let verbos→ truee = true; //@verbose=true, false3 let dry_ru→ truen = true;4 let mode = format_mode(verbostruee, dry_rutruen);5 println!("{mode}");mode ← "verbose dry-run"
3 let dry_run = true;4 let mod→ "verbose dry-run"e = format_mode(verbostruee, dry_rutruen);5 println!("{mode}");6}outputverbose dry-run
verbose ← false, dry_run ← true
1fn main() {2 let verbos→ falsee = false;3 let dry_ru→ truen = true;4 let mode = format_mode(verbosfalsee, dry_rutruen);5 println!("{mode}");mode ← "quiet dry-run"
3 let dry_run = true;4 let mod→ "quiet dry-run"e = format_mode(verbosfalsee, dry_rutruen);5 println!("{mode}");6}outputquiet dry-run
flag
`verbose` is a boolean flag represented by a normal binding.
mode
`format_mode` turns flag combinations into a user-facing summary.
match tuple
Matching `(verbose, dry_run)` keeps the mode table explicit.