CLI Capstone
CLI Limit Parser
Read an Option Pair
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.