Skip to content

Commit

Permalink
feat(derive): Implement ValueEnum for ColorChoice
Browse files Browse the repository at this point in the history
  • Loading branch information
tmccombs committed Nov 4, 2022
1 parent 033438e commit 2ff3d43
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions src/util/color.rs
@@ -1,3 +1,6 @@
use crate::builder::PossibleValue;
use crate::derive::ValueEnum;

/// Represents the color preferences for program output
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
pub enum ColorChoice {
Expand Down Expand Up @@ -60,3 +63,19 @@ impl Default for ColorChoice {
Self::Auto
}
}

impl ValueEnum for ColorChoice {
fn value_variants<'a>() -> &'a [Self] {
&[Self::Auto, Self::Always, Self::Never]
}

fn to_possible_value(&self) -> Option<PossibleValue> {
Some(match self {
Self::Auto => {
PossibleValue::new("auto").help("Use colored output if writing to a terminal/TTY")
}
Self::Always => PossibleValue::new("always").help("Always use colored output"),
Self::Never => PossibleValue::new("never").help("Never use colored output"),
})
}
}

0 comments on commit 2ff3d43

Please sign in to comment.