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
#![allow(dead_code)]

#[cfg(not(target_os = "windows"))]
mod my {
    // helpful: https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797
    pub const TERM_BRIGHT_BLACK    : &str = "\x1b[90m";
    pub const TERM_BRIGHT_RED      : &str = "\x1b[91m";
    pub const TERM_BRIGHT_GREEN    : &str = "\x1b[92m";
    pub const TERM_BRIGHT_YELLOW   : &str = "\x1b[93m";
    pub const TERM_BRIGHT_BLUE     : &str = "\x1b[94m";
    pub const TERM_BRIGHT_MAGENTA  : &str = "\x1b[95m";
    pub const TERM_BRIGHT_CYAN     : &str = "\x1b[96m";
    pub const TERM_BRIGHT_WHITE    : &str = "\x1b[97m";
    pub const TERM_DIM_BLACK       : &str = "\x1b[30m";
    pub const TERM_DIM_RED         : &str = "\x1b[31m";
    pub const TERM_DIM_GREEN       : &str = "\x1b[32m";
    pub const TERM_DIM_YELLOW      : &str = "\x1b[33m";
    pub const TERM_DIM_BLUE        : &str = "\x1b[34m";
    pub const TERM_DIM_MAGENTA     : &str = "\x1b[35m";
    pub const TERM_DIM_CYAN        : &str = "\x1b[36m";
    pub const TERM_DIM_WHITE       : &str = "\x1b[37m";
    pub const TERM_DIM_DEFAULT     : &str = "\x1b[39m";
    pub const TERM_BOLD            : &str = "\x1b[1m";
    pub const TERM_BOLD_RESET      : &str = "\x1b[22m";
    pub const TERM_DIM             : &str = "\x1b[2m";
    pub const TERM_DIM_RESET       : &str = "\x1b[22m";
    pub const TERM_ITALIC          : &str = "\x1b[3m";
    pub const TERM_ITALIC_RESET    : &str = "\x1b[23m";
    pub const TERM_UNDERLINE       : &str = "\x1b[4m";
    pub const TERM_UNDERLINE_RESET : &str = "\x1b[24m";
    pub const TERM_RESET           : &str = "\x1b[0m";
}
#[cfg(target_os = "windows")]
mod my {
    pub const TERM_BRIGHT_BLACK    : &str = "";
    pub const TERM_BRIGHT_RED      : &str = "";
    pub const TERM_BRIGHT_GREEN    : &str = "";
    pub const TERM_BRIGHT_YELLOW   : &str = "";
    pub const TERM_BRIGHT_BLUE     : &str = "";
    pub const TERM_BRIGHT_MAGENTA  : &str = "";
    pub const TERM_BRIGHT_CYAN     : &str = "";
    pub const TERM_BRIGHT_WHITE    : &str = "";
    pub const TERM_DIM_BLACK       : &str = "";
    pub const TERM_DIM_RED         : &str = "";
    pub const TERM_DIM_GREEN       : &str = "";
    pub const TERM_DIM_YELLOW      : &str = "";
    pub const TERM_DIM_BLUE        : &str = "";
    pub const TERM_DIM_MAGENTA     : &str = "";
    pub const TERM_DIM_CYAN        : &str = "";
    pub const TERM_DIM_WHITE       : &str = "";
    pub const TERM_DIM_DEFAULT     : &str = "";
    pub const TERM_BOLD            : &str = "";
    pub const TERM_BOLD_RESET      : &str = "";
    pub const TERM_DIM             : &str = "";
    pub const TERM_DIM_RESET       : &str = "";
    pub const TERM_ITALIC          : &str = "";
    pub const TERM_ITALIC_RESET    : &str = "";
    pub const TERM_UNDERLINE       : &str = "";
    pub const TERM_UNDERLINE_RESET : &str = "";
    pub const TERM_RESET           : &str = "";
}

pub use my::*;

#[cfg(test)]
mod tests {
    #[test]
    fn it_works() {
        let result = 2 + 2;
        assert_eq!(result, 4);
    }
}