use clap::ValueEnum;
#[derive(Debug, Clone, Copy, PartialEq, Eq, ValueEnum, Default)]
pub enum When {
#[default]
Auto,
Never,
Always,
}
impl When {
#[must_use]
pub const fn resolve(self, is_terminal: bool) -> bool {
match self {
Self::Auto => is_terminal,
Self::Never => false,
Self::Always => true,
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn color_auto_follows_the_terminal() {
assert!(When::Auto.resolve(true));
assert!(!When::Auto.resolve(false));
assert!(!When::Never.resolve(true));
assert!(When::Always.resolve(false));
}
}