1use strum_macros::{Display, EnumIter, EnumString};
2
3#[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}