Skip to main content

## ValueEnum

# 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".

## Implementors§

Source§

### impl ValueEnum for ColorChoice