# Trait clap::ValueEnum

source · [−]

    pub trait ValueEnum: Sized + Clone {
        fn value_variants<'a>() -> &'a [Self]ⓘNotable traits for &[u8]impl Read for &[u8]impl Write for &mut [u8];
        fn to_possible_value(&self) -> Option<PossibleValue>;

        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`.

See the derive reference for attributes and best practices.

NOTE: Deriving requires the [`derive` feature flag][crate::_features]

## Example

    #[derive(clap::Parser)]
    struct Args {
       #[arg(value_enum)]
       level: Level,
    }

    #[derive(clap::ValueEnum, Clone)]
    enum Level {
       Debug,
       Info,
       Warning,
       Error,
    }

## Required Methods

source

#### fn value_variants<'a>() -> &'a [Self]ⓘNotable traits for &[u8]`impl Read for &[u8]impl Write for &mut [u8]`

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`.

## Implementors

source

### impl ValueEnum for ColorChoice