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
78
79
80
81
82
83
84
#[derive(Clone)]
#[derive(Copy)]
#[derive(Debug)]
pub struct Rgb {
    pub r: u8,
    pub g: u8,
    pub b: u8
}

impl Rgb {
    pub const fn default() -> Self {
        Self::new(0, 0, 0)
    }

    pub const fn new(r: u8, g: u8, b: u8) -> Self {
        Self {
            r,
            g,
            b
        }
    }
}

impl Default for Rgb {
    fn default() -> Self {
        Rgb::new(0, 0, 0)
    }
}

pub const fn white() -> Rgb {
    Rgb::new(255, 255, 255)
}

pub const fn black() -> Rgb {
    Rgb::default()
}

pub const fn red() -> Rgb {
    Rgb::new(255, 0, 0)
}

pub const fn orange() -> Rgb {
    Rgb::new(255, 128, 0)
}

pub const fn yellow() -> Rgb {
    Rgb::new(255, 255, 0)
}

pub const fn yellow_green() -> Rgb {
    Rgb::new(128, 255, 0)
}

pub const fn green() -> Rgb {
    Rgb::new(0, 255, 0)
}

pub const fn green_cyan() -> Rgb {
    Rgb::new(0, 255, 128)
}

pub const fn cyan() -> Rgb {
    Rgb::new(0, 255, 255)
}

pub const fn cyan_blue() -> Rgb {
    Rgb::new(0, 128, 255)
}

pub const fn blue() -> Rgb {
    Rgb::new(0, 0, 255)
}

pub const fn blue_magenta() -> Rgb {
    Rgb::new(128, 0, 255)
}

pub const fn magenta() -> Rgb {
    Rgb::new(255, 0, 255)
}

pub const fn magenta_pink() -> Rgb {
    Rgb::new(255, 0, 128)
}