mendeleev/properties/
jmol_color.rs

1use super::{color, Color, Element};
2
3impl Element {
4    /// Returns the color for the element in the jmol software
5    ///
6    /// ```
7    /// use mendeleev::{Element, Color};
8    ///
9    /// assert_eq!(Element::H.jmol_color(), Some(Color{r: 255, g: 255, b: 255}));
10    /// assert_eq!(Element::Og.jmol_color(), None);
11    /// assert_eq!(Element::Au.jmol_color(), Some(Color{r: 255, g: 209, b: 35}));
12    /// ```
13    pub const fn jmol_color(&self) -> Option<Color> {
14        match self {
15            Element::H => color(255, 255, 255),
16            Element::He => color(217, 255, 255),
17            Element::Li => color(204, 128, 255),
18            Element::Be => color(194, 255, 0),
19            Element::B => color(255, 181, 181),
20            Element::C => color(144, 144, 144),
21            Element::N => color(48, 80, 248),
22            Element::O => color(255, 13, 13),
23            Element::F => color(144, 224, 80),
24            Element::Ne => color(179, 227, 245),
25            Element::Na => color(171, 92, 242),
26            Element::Mg => color(138, 255, 0),
27            Element::Al => color(191, 166, 166),
28            Element::Si => color(240, 200, 160),
29            Element::P => color(255, 128, 0),
30            Element::S => color(255, 255, 48),
31            Element::Cl => color(31, 240, 31),
32            Element::Ar => color(128, 209, 227),
33            Element::K => color(143, 64, 212),
34            Element::Ca => color(61, 255, 0),
35            Element::Sc => color(230, 230, 230),
36            Element::Ti => color(191, 194, 199),
37            Element::V => color(166, 166, 171),
38            Element::Cr => color(138, 153, 199),
39            Element::Mn => color(156, 122, 199),
40            Element::Fe => color(224, 102, 51),
41            Element::Co => color(240, 144, 160),
42            Element::Ni => color(80, 208, 80),
43            Element::Cu => color(200, 128, 51),
44            Element::Zn => color(125, 128, 176),
45            Element::Ga => color(194, 143, 143),
46            Element::Ge => color(102, 143, 143),
47            Element::As => color(189, 128, 227),
48            Element::Se => color(255, 161, 0),
49            Element::Br => color(166, 41, 41),
50            Element::Kr => color(92, 184, 209),
51            Element::Rb => color(112, 46, 176),
52            Element::Sr => color(0, 255, 0),
53            Element::Y => color(148, 255, 255),
54            Element::Zr => color(148, 224, 224),
55            Element::Nb => color(115, 194, 201),
56            Element::Mo => color(84, 181, 181),
57            Element::Tc => color(59, 158, 158),
58            Element::Ru => color(36, 143, 143),
59            Element::Rh => color(10, 125, 140),
60            Element::Pd => color(0, 105, 133),
61            Element::Ag => color(192, 192, 192),
62            Element::Cd => color(255, 217, 143),
63            Element::In => color(166, 117, 115),
64            Element::Sn => color(102, 128, 128),
65            Element::Sb => color(158, 99, 181),
66            Element::Te => color(212, 122, 0),
67            Element::I => color(148, 0, 148),
68            Element::Xe => color(66, 158, 176),
69            Element::Cs => color(87, 23, 143),
70            Element::Ba => color(0, 201, 0),
71            Element::La => color(112, 212, 255),
72            Element::Ce => color(255, 255, 199),
73            Element::Pr => color(217, 255, 199),
74            Element::Nd => color(199, 255, 199),
75            Element::Pm => color(163, 255, 199),
76            Element::Sm => color(143, 255, 199),
77            Element::Eu => color(97, 255, 199),
78            Element::Gd => color(69, 255, 199),
79            Element::Tb => color(48, 255, 199),
80            Element::Dy => color(31, 255, 199),
81            Element::Ho => color(0, 255, 156),
82            Element::Er => color(0, 230, 117),
83            Element::Tm => color(0, 212, 82),
84            Element::Yb => color(0, 191, 56),
85            Element::Lu => color(0, 171, 36),
86            Element::Hf => color(77, 194, 255),
87            Element::Ta => color(77, 166, 255),
88            Element::W => color(33, 148, 214),
89            Element::Re => color(38, 125, 171),
90            Element::Os => color(38, 102, 150),
91            Element::Ir => color(23, 84, 135),
92            Element::Pt => color(208, 208, 224),
93            Element::Au => color(255, 209, 35),
94            Element::Hg => color(184, 184, 208),
95            Element::Tl => color(166, 84, 77),
96            Element::Pb => color(87, 89, 97),
97            Element::Bi => color(158, 79, 181),
98            Element::Po => color(171, 92, 0),
99            Element::At => color(117, 79, 69),
100            Element::Rn => color(66, 130, 150),
101            Element::Fr => color(66, 0, 102),
102            Element::Ra => color(0, 125, 0),
103            Element::Ac => color(112, 171, 250),
104            Element::Th => color(0, 186, 255),
105            Element::Pa => color(0, 161, 255),
106            Element::U => color(0, 143, 255),
107            Element::Np => color(0, 128, 255),
108            Element::Pu => color(0, 107, 255),
109            Element::Am => color(84, 92, 242),
110            Element::Cm => color(120, 92, 227),
111            Element::Bk => color(138, 79, 227),
112            Element::Cf => color(161, 54, 212),
113            Element::Es => color(179, 31, 212),
114            Element::Fm => color(179, 31, 186),
115            Element::Md => color(179, 13, 166),
116            Element::No => color(189, 13, 135),
117            Element::Lr => color(199, 0, 102),
118            Element::Rf => color(204, 0, 89),
119            Element::Db => color(209, 0, 79),
120            Element::Sg => color(217, 0, 69),
121            Element::Bh => color(224, 0, 56),
122            Element::Hs => color(230, 0, 46),
123            Element::Mt => color(235, 0, 38),
124            Element::Ds => None,
125            Element::Rg => None,
126            Element::Cn => None,
127            Element::Nh => None,
128            Element::Fl => None,
129            Element::Mc => None,
130            Element::Lv => None,
131            Element::Ts => None,
132            Element::Og => None,
133        }
134    }
135}