typestar

Validar argumentos en Rust

clap puede exigir rangos, enumeraciones y combinaciones requeridas antes de que main corra.

use clap::{Parser, ValueEnum};

#[derive(Copy, Clone, Debug, ValueEnum)]
enum Theme {
    Default,
    Monokai,
    Dracula,
}

#[derive(Parser, Debug)]
struct Cli {
    #[arg(long, value_parser = 1..=3)]
    stars: i64,

    #[arg(long, value_enum, default_value_t = Theme::Default)]
    theme: Theme,

    #[arg(long, requires = "output")]
    export: bool,

    #[arg(long)]
    output: Option<String>,
}

fn main() {
    let cli = Cli::parse();
    println!("{:?}", cli);
}

Cómo funciona

  1. value_parser con un rango rechaza los números fuera de límite.
  2. Un ValueEnum restringe un flag a valores conocidos.
  3. requires y conflicts_with expresan los emparejamientos.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
28
Caracteres a escribir
425
Tokens
89
Ritmo de tres estrellas
100 tpm

Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 53 segundos.

Escribe este fragmento

Paso 5 de 5 en Argumentos; paso 5 de 12 en Herramientas CLI y clientes HTTP.

← Anterior Siguiente →