Flags, conteos y listas en Rust
Valores opcionales, flags repetidos y argumentos que toman muchos valores.
use clap::{ArgAction, Parser};
#[derive(Parser, Debug)]
struct Cli {
/// Tours to include
#[arg(short, long)]
tour: Vec<String>,
/// Write results here
#[arg(short, long)]
out: Option<String>,
/// Repeat for more detail
#[arg(short, long, action = ArgAction::Count)]
verbose: u8,
/// Skip the confirmation
#[arg(long, default_value_t = false)]
force: bool,
}
fn main() {
let cli = Cli::parse();
println!("{:?} -> {:?}", cli.tour, cli.out);
println!("verbosity {} force {}", cli.verbose, cli.force);
}
Cómo funciona
Option<T>vuelve opcional un argumento.ArgAction::Countconvierte -v -v en un nivel.- Un campo
Vec<T>junta cada aparición.
Palabras clave y builtins usados aquí
OptionStringVecboolfnletstructu8use
El intento, en números
- Líneas
- 26
- Caracteres a escribir
- 505
- Tokens
- 100
- Ritmo de tres estrellas
- 100 tpm
Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 60 segundos.
Paso 3 de 5 en Argumentos; paso 3 de 12 en Herramientas CLI y clientes HTTP.