1use serde::{Deserialize, Serialize};
2use strum_macros::{Display, EnumIter};
3
4#[derive(Serialize, Deserialize, Debug, Clone, Copy, Display, EnumIter)]
5pub enum Color {
6 Black,
7 White,
8 Red,
9 Green,
10 Blue,
11 Yellow,
12 Cyan,
13 Magenta,
14 Gray,
15 Silver,
16 Maroon,
17 Olive,
18 Lime,
19 Navy,
20 Teal,
21 Purple,
22 Orange,
23 Brown,
24 Pink,
25 Gold,
26}
27
28impl Color {
29 pub fn into_hex(&self) -> String {
30 match self {
31 self::Color::Black => "#000000".to_owned(),
32 self::Color::White => "#FFFFFF".to_owned(),
33 self::Color::Red => "#FF0000".to_owned(),
34 self::Color::Green => "#008000".to_owned(),
35 self::Color::Blue => "#0000FF".to_owned(),
36 self::Color::Yellow => "#FFFF00".to_owned(),
37 self::Color::Cyan => "#00FFFF".to_owned(),
38 self::Color::Magenta => "#FF00FF".to_owned(),
39 self::Color::Gray => "#808080".to_owned(),
40 self::Color::Silver => "#C0C0C0".to_owned(),
41 self::Color::Maroon => "#800000".to_owned(),
42 self::Color::Olive => "#808000".to_owned(),
43 self::Color::Lime => "#00FF00".to_owned(),
44 self::Color::Navy => "#000080".to_owned(),
45 self::Color::Teal => "#008080".to_owned(),
46 self::Color::Purple => "#800080".to_owned(),
47 self::Color::Orange => "#FFA500".to_owned(),
48 self::Color::Brown => "#A52A2A".to_owned(),
49 self::Color::Pink => "#FFC0CB".to_owned(),
50 self::Color::Gold => "#FFD700".to_owned(),
51 }
52 }
53}