include!("../include/colorpalette.rs");
color_palette_enum!(i32);
impl ColorPalette {
pub(in crate) fn _from(number: i32) -> Self {
assert!(number >= COLOR_DEFAULT && number < COLORS());
match number {
COLOR_DEFAULT => ColorPalette::TerminalDefault,
COLOR_BLACK => ColorPalette::Black,
COLOR_RED => ColorPalette::Red,
COLOR_GREEN => ColorPalette::Green,
COLOR_YELLOW => ColorPalette::Yellow,
COLOR_BLUE => ColorPalette::Blue,
COLOR_MAGENTA => ColorPalette::Magenta,
COLOR_CYAN => ColorPalette::Cyan,
COLOR_WHITE => ColorPalette::White,
COLOR_LIGHT_BLACK => ColorPalette::LightBlack,
COLOR_LIGHT_RED => ColorPalette::LightRed,
COLOR_LIGHT_GREEN => ColorPalette::LightGreen,
COLOR_LIGHT_YELLOW => ColorPalette::LightYellow,
COLOR_LIGHT_BLUE => ColorPalette::LightBlue,
COLOR_LIGHT_MAGENTA => ColorPalette::LightMagenta,
COLOR_LIGHT_CYAN => ColorPalette::LightCyan,
COLOR_LIGHT_WHITE => ColorPalette::LightWhite,
_ => ColorPalette::Custom(number)
}
}
pub(in crate) fn number(self) -> i32 {
match self {
ColorPalette::TerminalDefault => COLOR_DEFAULT,
ColorPalette::Black => COLOR_BLACK,
ColorPalette::Red => COLOR_RED,
ColorPalette::Green => COLOR_GREEN,
ColorPalette::Yellow => COLOR_YELLOW,
ColorPalette::Blue => COLOR_BLUE,
ColorPalette::Magenta => COLOR_MAGENTA,
ColorPalette::Cyan => COLOR_CYAN,
ColorPalette::White => COLOR_WHITE,
ColorPalette::LightBlack => COLOR_LIGHT_BLACK,
ColorPalette::LightRed => COLOR_LIGHT_RED,
ColorPalette::LightGreen => COLOR_LIGHT_GREEN,
ColorPalette::LightYellow => COLOR_LIGHT_YELLOW,
ColorPalette::LightBlue => COLOR_LIGHT_BLUE,
ColorPalette::LightMagenta => COLOR_LIGHT_MAGENTA,
ColorPalette::LightCyan => COLOR_LIGHT_CYAN,
ColorPalette::LightWhite => COLOR_LIGHT_WHITE,
ColorPalette::Custom(number) => {
assert!(number >= COLOR_LIGHT_BLACK && number < COLORS());
number
}
}
}
}