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
pub enum Styles { Reset, Bold, Dim, Italic, Underline, Inverse, Hidden, Strikethrough, Black, Red, Green, Yellow, Blue, Magenta, Cyan, White, Gray, Grey, BgBlack, BgRed, BgGreen, BgYellow, BgBlue, BgMagenta, BgCyan, BgWhite } pub struct StylePoint { prefix: int, suffix: int } impl StylePoint { pub fn new(style: Styles) -> StylePoint { match style { Styles::Reset => StylePoint { prefix: 0i, suffix: 0i }, Styles::Bold => StylePoint { prefix: 1i, suffix: 22i }, Styles::Dim => StylePoint { prefix: 2i, suffix: 22i }, Styles::Italic => StylePoint { prefix: 3i, suffix: 23i }, Styles::Underline => StylePoint { prefix: 4i, suffix: 24i }, Styles::Inverse => StylePoint { prefix: 7i, suffix: 27i }, Styles::Hidden => StylePoint { prefix: 8i, suffix: 28i }, Styles::Strikethrough => StylePoint { prefix: 9i, suffix: 29i }, Styles::Black => StylePoint { prefix: 30i, suffix: 39i }, Styles::Red => StylePoint { prefix: 31i, suffix: 39i }, Styles::Green => StylePoint { prefix: 32i, suffix: 39i }, Styles::Yellow => StylePoint { prefix: 33i, suffix: 39i }, Styles::Blue => StylePoint { prefix: 34i, suffix: 39i }, Styles::Magenta => StylePoint { prefix: 35i, suffix: 39i }, Styles::Cyan => StylePoint { prefix: 36i, suffix: 39i }, Styles::White => StylePoint { prefix: 37i, suffix: 39i }, Styles::Gray => StylePoint { prefix: 90i, suffix: 39i }, Styles::Grey => StylePoint { prefix: 90i, suffix: 39i }, Styles::BgBlack => StylePoint { prefix: 40i, suffix: 49i }, Styles::BgRed => StylePoint { prefix: 41i, suffix: 49i }, Styles::BgGreen => StylePoint { prefix: 42i, suffix: 49i }, Styles::BgYellow => StylePoint { prefix: 43i, suffix: 49i }, Styles::BgBlue => StylePoint { prefix: 44i, suffix: 49i }, Styles::BgMagenta => StylePoint { prefix: 45i, suffix: 49i }, Styles::BgCyan => StylePoint { prefix: 46i, suffix: 49i }, Styles::BgWhite => StylePoint { prefix: 47i, suffix: 49i } } } pub fn get_prefix(&self) -> String { String::new() + "\u001b[" + self.prefix.to_string().as_slice() + "m" } pub fn get_suffix(&self) -> String { String::new() + "\u001b[" + self.suffix.to_string().as_slice() + "m" } }