Command-Line Tools
Flag Mode
Choose Behavior from Booleans
Boolean flags often switch a command between quiet and detailed output.
Program
Play the program to choose the verbose flag and see the selected output mode.
flag_mode.rs
Replay: real traced execution (multi-file project)
fn main() {
let verbose = true;
let format = "json";
let mode = output_mode(verbose, format);
println!("{mode}");
}
fn output_mode(verbose: bool, format: &str) -> String {
if verbose {
format!("{format}:verbose")
} else {
format!("{format}:quiet")
}
}
fn main() {
let verbose = false;
let format = "json";
let mode = output_mode(verbose, format);
println!("{mode}");
}
fn output_mode(verbose: bool, format: &str) -> String {
if verbose {
format!("{format}:verbose")
} else {
format!("{format}:quiet")
}
}
verbose ← true, format ← "json"
1fn main() {2 let verbos→ truee = true; //@verbose=true, false3 let forma→ "json"t = "json";4 let mode = output_mode(verbostruee, format);5 println!("{mode}");if verbose
8fn output_mode(verbose: bool, format: &str) -> String {9 if verbostruee {10 format!("{format}:verbose")11 } else {12 format!("{format}:quiet")mode ← "json:verbose"
3 let format = "json";4 let mod→ "json:verbose"e = output_mode(verbostruee, format);5 println!("{mode}");6}outputjson:verbose
verbose ← false, format ← "json"
1fn main() {2 let verbos→ falsee = false;3 let forma→ "json"t = "json";4 let mode = output_mode(verbosfalsee, format);5 println!("{mode}");mode ← "json:quiet"
3 let format = "json";4 let mod→ "json:quiet"e = output_mode(verbosfalsee, format);5 println!("{mode}");6}outputjson:quiet
flag
`verbose` models a command-line flag such as `--verbose`.
branch
The helper chooses one behavior for `true` and another for `false`.
formatting
`format!` builds the final mode label from configuration values.