clap_builder

Trait ValueEnum

source
pub trait ValueEnum: Sized + Clone {
    // Required methods
    fn value_variants<'a>() -> &'a [Self];
    fn to_possible_value(&self) -> Option<PossibleValue>;

    // Provided method
    fn from_str(input: &str, ignore_case: bool) -> Result<Self, String> { ... }
}
Expand description

Parse arguments into enums.

When deriving Parser, a field whose type implements ValueEnum can have the attribute #[arg(value_enum)] which will

  • Call EnumValueParser
  • Allowing using the #[arg(default_value_t)] attribute without implementing Display.

NOTE: Deriving requires the derive feature flag

Required Methods§

source

fn value_variants<'a>() -> &'a [Self]

All possible argument values, in display order.

source

fn to_possible_value(&self) -> Option<PossibleValue>

The canonical argument value.

The value is None for skipped variants.

Provided Methods§

source

fn from_str(input: &str, ignore_case: bool) -> Result<Self, String>

Parse an argument into Self.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§