diff --git a/enums/Cargo.toml b/enums/Cargo.toml index 19825da24..815e8c2e6 100644 --- a/enums/Cargo.toml +++ b/enums/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Calixte Denizet "] edition = "2021" [dependencies] -clap = { version = "^3.2", features = ["derive"] } +clap = { version = "^4.0", features = ["derive"] } askama = "^0.11" tree-sitter = "0.20.9" diff --git a/enums/src/main.rs b/enums/src/main.rs index 3c21b1487..1da0c389f 100644 --- a/enums/src/main.rs +++ b/enums/src/main.rs @@ -1,10 +1,11 @@ use std::path::PathBuf; +use clap::builder::{PossibleValuesParser, TypedValueParser}; use clap::Parser; use enums::*; -#[derive(Debug)] +#[derive(Debug, Clone)] enum OutputLanguage { Rust, Go, @@ -44,7 +45,8 @@ struct Opts { #[clap(long, short, default_value = ".", value_parser)] output: PathBuf, /// Target language. - #[clap(long, short, default_value = "rust", possible_values = OutputLanguage::variants())] + #[clap(long, short, default_value = "rust", value_parser = PossibleValuesParser::new(OutputLanguage::variants()) + .map(|s| s.parse::().unwrap()))] language: OutputLanguage, /// File name template. #[clap(long, short, default_value = "language_$")]