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.

verbose
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")
    }
}
  1. 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}");
  2. if verbose

    8fn output_mode(verbose: bool, format: &str) -> String {9    if verbostruee {10        format!("{format}:verbose")11    } else {12        format!("{format}:quiet")
  3. mode ← "json:verbose"

    3    let format = "json";4    let mod→ "json:verbose"e = output_mode(verbostruee, format);5    println!("{mode}");6}
    outputjson:verbose
  1. 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}");
  2. 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.