rust_colors/
colors.rs

1macro_rules! color {
2    ($($name:ident, $value:expr);*;) => {
3        #[derive(Debug, PartialEq)]
4        pub enum Colors {
5            $($name,)*
6        }
7
8        impl Colors {
9            pub fn assign(&self) -> &str {
10                match *self {
11                    $(Colors::$name => $value,)*
12                }
13            }
14        }
15    };
16}
17
18color! {
19    Black, "[30m";
20    Red, "[31m";
21    Green, "[32m";
22    Yellow, "[33m";
23    Blue, "[34m";
24    Purple, "[35m";
25    Cyan, "[36m";
26    White, "[37m";
27    Default, "[0m";
28}