CLI tools often parse option/value pairs from an argument list before choosing defaults.

Program

Play the program to choose a raw limit argument and parse it from a fixed argument list.

cli_limit_parser.rs
fn main() {
    let raw_limit = ;
    let args = ["egtry", "--limit", raw_limit];
    let limit = parse_limit(&args).unwrap_or(1);
    println!("limit={limit}");
}

fn parse_limit(args: &[&str]) -> Option<u32> {
    args.windows(2)
        .find(|pair| pair[0] == "--limit")
        .and_then(|pair| pair[1].parse::<u32>().ok())
}
fn main() {
    let raw_limit = ;
    let args = ["egtry", "--limit", raw_limit];
    let limit = parse_limit(&args).unwrap_or(1);
    println!("limit={limit}");
}

fn parse_limit(args: &[&str]) -> Option<u32> {
    args.windows(2)
        .find(|pair| pair[0] == "--limit")
        .and_then(|pair| pair[1].parse::<u32>().ok())
}
fn main() {
    let raw_limit = ;
    let args = ["egtry", "--limit", raw_limit];
    let limit = parse_limit(&args).unwrap_or(1);
    println!("limit={limit}");
}

fn parse_limit(args: &[&str]) -> Option<u32> {
    args.windows(2)
        .find(|pair| pair[0] == "--limit")
        .and_then(|pair| pair[1].parse::<u32>().ok())
}
argument list The example uses a fixed in-memory list instead of reading host process args.
windows `windows(2)` lets the parser inspect option/value pairs.
default `unwrap_or(1)` supplies a stable fallback when parsing fails.