pride_overlay/
flags.rs

1use strum_macros::{Display, EnumIter, EnumString};
2
3/// Built-in flags
4#[derive(Display, EnumString, EnumIter)]
5pub enum Flags {
6    Rainbow,
7    Transgender,
8    Bisexual,
9    Pansexual,
10    Nonbinary,
11    Lesbian,
12    Agender,
13    Asexual,
14    Genderqueer,
15    Genderfluid,
16    Aromantic,
17    Polyamory,
18}
19
20impl From<Flags> for Vec<(u8, u8, u8)> {
21    fn from(val: Flags) -> Self {
22        match val {
23            Flags::Rainbow => vec![
24                (229, 0, 0),
25                (255, 141, 0),
26                (255, 238, 0),
27                (2, 129, 33),
28                (0, 76, 255),
29                (119, 0, 136),
30            ],
31            Flags::Transgender => vec![
32                (91, 207, 251),
33                (245, 171, 185),
34                (255, 255, 255),
35                (245, 171, 185),
36                (91, 207, 251),
37            ],
38            Flags::Bisexual => vec![(214, 2, 112), (155, 79, 150), (0, 56, 168)],
39            Flags::Pansexual => vec![(255, 28, 141), (255, 215, 0), (26, 179, 255)],
40            Flags::Nonbinary => vec![
41                (252, 244, 49),
42                (252, 252, 252),
43                (157, 89, 210),
44                (40, 40, 40),
45            ],
46            Flags::Lesbian => vec![
47                (214, 40, 0),
48                (255, 155, 86),
49                (255, 255, 255),
50                (212, 98, 166),
51                (164, 0, 98),
52            ],
53            Flags::Agender => vec![
54                (0, 0, 0),
55                (186, 186, 186),
56                (255, 255, 255),
57                (186, 244, 132),
58                (255, 255, 255),
59                (186, 186, 186),
60                (0, 0, 0),
61            ],
62            Flags::Asexual => vec![(0, 0, 0), (164, 164, 164), (255, 255, 255), (129, 0, 129)],
63            Flags::Genderqueer => vec![(181, 127, 221), (255, 255, 255), (73, 130, 30)],
64            Flags::Genderfluid => vec![
65                (254, 118, 162),
66                (255, 255, 255),
67                (191, 18, 215),
68                (0, 0, 0),
69                (48, 60, 190),
70            ],
71            Flags::Aromantic => vec![
72                (59, 167, 64),
73                (168, 212, 122),
74                (255, 255, 255),
75                (171, 171, 171),
76                (0, 0, 0),
77            ],
78            Flags::Polyamory => vec![(0, 0, 255), (255, 0, 0), (0, 0, 0)],
79        }
80    }
81}