1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
#[derive(Debug, Clone, Copy, PartialEq)] pub enum Color { Reset, Black, Red, Green, Yellow, Magenta, Cyan, Gray, DarkGray, LightRed, LightGreen, LightYellow, LightMagenta, LightCyan, White, Rgb(u8, u8, u8), } #[derive(Debug, Clone, Copy, PartialEq)] pub enum Modifier { Blink, Bold, CrossedOut, Faint, Framed, Invert, Italic, NoBlink, NoBold, NoCrossedOut, NoFaint, NoInvert, NoItalic, NoUnderline, Reset, Underline, } #[derive(Debug, Clone, Copy, PartialEq)] pub struct Style { pub fg: Color, pub bg: Color, pub modifier: Modifier, } impl Default for Style { fn default() -> Style { Style { fg: Color::Reset, bg: Color::Reset, modifier: Modifier::Reset, } } } impl Style { pub fn reset(&mut self) { self.fg = Color::Reset; self.bg = Color::Reset; self.modifier = Modifier::Reset; } pub fn fg(mut self, color: Color) -> Style { self.fg = color; self } pub fn bg(mut self, color: Color) -> Style { self.bg = color; self } pub fn modifier(mut self, modifier: Modifier) -> Style { self.modifier = modifier; self } }