svgtypes/
colors.rs

1// Copyright 2021 the SVG Types Authors
2// SPDX-License-Identifier: Apache-2.0 OR MIT
3
4// This file is autogenerated. Do not edit it!
5
6use crate::Color;
7
8static COLORS: Map<Color> = Map {
9    key: 3213172566270843353,
10    disps: &[
11        (0, 37),
12        (0, 74),
13        (1, 0),
14        (0, 22),
15        (0, 92),
16        (2, 125),
17        (0, 73),
18        (0, 8),
19        (0, 2),
20        (0, 4),
21        (26, 16),
22        (67, 121),
23        (0, 3),
24        (0, 4),
25        (0, 60),
26        (0, 39),
27        (0, 130),
28        (0, 15),
29        (3, 38),
30        (0, 136),
31        (7, 75),
32        (6, 141),
33        (7, 67),
34        (0, 14),
35        (0, 128),
36        (27, 111),
37        (1, 31),
38        (0, 12),
39        (2, 49),
40        (0, 2),
41    ],
42    entries: &[
43        ("lightgrey", Color { red: 211, green: 211, blue: 211, alpha: 255 }),
44        ("lavenderblush", Color { red: 255, green: 240, blue: 245, alpha: 255 }),
45        ("deeppink", Color { red: 255, green: 20, blue: 147, alpha: 255 }),
46        ("seashell", Color { red: 255, green: 245, blue: 238, alpha: 255 }),
47        ("lightsalmon", Color { red: 255, green: 160, blue: 122, alpha: 255 }),
48        ("green", Color { red: 0, green: 128, blue: 0, alpha: 255 }),
49        ("lightgreen", Color { red: 144, green: 238, blue: 144, alpha: 255 }),
50        ("black", Color { red: 0, green: 0, blue: 0, alpha: 255 }),
51        ("deepskyblue", Color { red: 0, green: 191, blue: 255, alpha: 255 }),
52        ("mistyrose", Color { red: 255, green: 228, blue: 225, alpha: 255 }),
53        ("silver", Color { red: 192, green: 192, blue: 192, alpha: 255 }),
54        ("dimgray", Color { red: 105, green: 105, blue: 105, alpha: 255 }),
55        ("navajowhite", Color { red: 255, green: 222, blue: 173, alpha: 255 }),
56        ("royalblue", Color { red: 65, green: 105, blue: 225, alpha: 255 }),
57        ("peru", Color { red: 205, green: 133, blue: 63, alpha: 255 }),
58        ("darkgrey", Color { red: 169, green: 169, blue: 169, alpha: 255 }),
59        ("steelblue", Color { red: 70, green: 130, blue: 180, alpha: 255 }),
60        ("teal", Color { red: 0, green: 128, blue: 128, alpha: 255 }),
61        ("orangered", Color { red: 255, green: 69, blue: 0, alpha: 255 }),
62        ("mediumslateblue", Color { red: 123, green: 104, blue: 238, alpha: 255 }),
63        ("blueviolet", Color { red: 138, green: 43, blue: 226, alpha: 255 }),
64        ("cornflowerblue", Color { red: 100, green: 149, blue: 237, alpha: 255 }),
65        ("cyan", Color { red: 0, green: 255, blue: 255, alpha: 255 }),
66        ("beige", Color { red: 245, green: 245, blue: 220, alpha: 255 }),
67        ("goldenrod", Color { red: 218, green: 165, blue: 32, alpha: 255 }),
68        ("rosybrown", Color { red: 188, green: 143, blue: 143, alpha: 255 }),
69        ("yellow", Color { red: 255, green: 255, blue: 0, alpha: 255 }),
70        ("blue", Color { red: 0, green: 0, blue: 255, alpha: 255 }),
71        ("darkblue", Color { red: 0, green: 0, blue: 139, alpha: 255 }),
72        ("aliceblue", Color { red: 240, green: 248, blue: 255, alpha: 255 }),
73        ("white", Color { red: 255, green: 255, blue: 255, alpha: 255 }),
74        ("mediumblue", Color { red: 0, green: 0, blue: 205, alpha: 255 }),
75        ("dodgerblue", Color { red: 30, green: 144, blue: 255, alpha: 255 }),
76        ("limegreen", Color { red: 50, green: 205, blue: 50, alpha: 255 }),
77        ("purple", Color { red: 128, green: 0, blue: 128, alpha: 255 }),
78        ("lightsteelblue", Color { red: 176, green: 196, blue: 222, alpha: 255 }),
79        ("lightslategray", Color { red: 119, green: 136, blue: 153, alpha: 255 }),
80        ("seagreen", Color { red: 46, green: 139, blue: 87, alpha: 255 }),
81        ("mediumvioletred", Color { red: 199, green: 21, blue: 133, alpha: 255 }),
82        ("slategrey", Color { red: 112, green: 128, blue: 144, alpha: 255 }),
83        ("darkslategrey", Color { red: 47, green: 79, blue: 79, alpha: 255 }),
84        ("turquoise", Color { red: 64, green: 224, blue: 208, alpha: 255 }),
85        ("paleturquoise", Color { red: 175, green: 238, blue: 238, alpha: 255 }),
86        ("lightgoldenrodyellow", Color { red: 250, green: 250, blue: 210, alpha: 255 }),
87        ("magenta", Color { red: 255, green: 0, blue: 255, alpha: 255 }),
88        ("darkseagreen", Color { red: 143, green: 188, blue: 143, alpha: 255 }),
89        ("lightcyan", Color { red: 224, green: 255, blue: 255, alpha: 255 }),
90        ("lightcoral", Color { red: 240, green: 128, blue: 128, alpha: 255 }),
91        ("mediumseagreen", Color { red: 60, green: 179, blue: 113, alpha: 255 }),
92        ("palegoldenrod", Color { red: 238, green: 232, blue: 170, alpha: 255 }),
93        ("palegreen", Color { red: 152, green: 251, blue: 152, alpha: 255 }),
94        ("darkslateblue", Color { red: 72, green: 61, blue: 139, alpha: 255 }),
95        ("moccasin", Color { red: 255, green: 228, blue: 181, alpha: 255 }),
96        ("forestgreen", Color { red: 34, green: 139, blue: 34, alpha: 255 }),
97        ("darkkhaki", Color { red: 189, green: 183, blue: 107, alpha: 255 }),
98        ("chartreuse", Color { red: 127, green: 255, blue: 0, alpha: 255 }),
99        ("floralwhite", Color { red: 255, green: 250, blue: 240, alpha: 255 }),
100        ("snow", Color { red: 255, green: 250, blue: 250, alpha: 255 }),
101        ("fuchsia", Color { red: 255, green: 0, blue: 255, alpha: 255 }),
102        ("orchid", Color { red: 218, green: 112, blue: 214, alpha: 255 }),
103        ("darkorchid", Color { red: 153, green: 50, blue: 204, alpha: 255 }),
104        ("darkred", Color { red: 139, green: 0, blue: 0, alpha: 255 }),
105        ("darksalmon", Color { red: 233, green: 150, blue: 122, alpha: 255 }),
106        ("crimson", Color { red: 220, green: 20, blue: 60, alpha: 255 }),
107        ("lime", Color { red: 0, green: 255, blue: 0, alpha: 255 }),
108        ("palevioletred", Color { red: 219, green: 112, blue: 147, alpha: 255 }),
109        ("lightseagreen", Color { red: 32, green: 178, blue: 170, alpha: 255 }),
110        ("ivory", Color { red: 255, green: 255, blue: 240, alpha: 255 }),
111        ("powderblue", Color { red: 176, green: 224, blue: 230, alpha: 255 }),
112        ("aquamarine", Color { red: 127, green: 255, blue: 212, alpha: 255 }),
113        ("darkturquoise", Color { red: 0, green: 206, blue: 209, alpha: 255 }),
114        ("lavender", Color { red: 230, green: 230, blue: 250, alpha: 255 }),
115        ("azure", Color { red: 240, green: 255, blue: 255, alpha: 255 }),
116        ("mediumturquoise", Color { red: 72, green: 209, blue: 204, alpha: 255 }),
117        ("lightgray", Color { red: 211, green: 211, blue: 211, alpha: 255 }),
118        ("transparent", Color { red: 0, green: 0, blue: 0, alpha: 0 }),
119        ("gainsboro", Color { red: 220, green: 220, blue: 220, alpha: 255 }),
120        ("olivedrab", Color { red: 107, green: 142, blue: 35, alpha: 255 }),
121        ("papayawhip", Color { red: 255, green: 239, blue: 213, alpha: 255 }),
122        ("tomato", Color { red: 255, green: 99, blue: 71, alpha: 255 }),
123        ("midnightblue", Color { red: 25, green: 25, blue: 112, alpha: 255 }),
124        ("pink", Color { red: 255, green: 192, blue: 203, alpha: 255 }),
125        ("yellowgreen", Color { red: 154, green: 205, blue: 50, alpha: 255 }),
126        ("slategray", Color { red: 112, green: 128, blue: 144, alpha: 255 }),
127        ("red", Color { red: 255, green: 0, blue: 0, alpha: 255 }),
128        ("indigo", Color { red: 75, green: 0, blue: 130, alpha: 255 }),
129        ("orange", Color { red: 255, green: 165, blue: 0, alpha: 255 }),
130        ("grey", Color { red: 128, green: 128, blue: 128, alpha: 255 }),
131        ("wheat", Color { red: 245, green: 222, blue: 179, alpha: 255 }),
132        ("darkgoldenrod", Color { red: 184, green: 134, blue: 11, alpha: 255 }),
133        ("lawngreen", Color { red: 124, green: 252, blue: 0, alpha: 255 }),
134        ("lightslategrey", Color { red: 119, green: 136, blue: 153, alpha: 255 }),
135        ("burlywood", Color { red: 222, green: 184, blue: 135, alpha: 255 }),
136        ("aqua", Color { red: 0, green: 255, blue: 255, alpha: 255 }),
137        ("saddlebrown", Color { red: 139, green: 69, blue: 19, alpha: 255 }),
138        ("oldlace", Color { red: 253, green: 245, blue: 230, alpha: 255 }),
139        ("lightskyblue", Color { red: 135, green: 206, blue: 250, alpha: 255 }),
140        ("violet", Color { red: 238, green: 130, blue: 238, alpha: 255 }),
141        ("dimgrey", Color { red: 105, green: 105, blue: 105, alpha: 255 }),
142        ("darkorange", Color { red: 255, green: 140, blue: 0, alpha: 255 }),
143        ("lightblue", Color { red: 173, green: 216, blue: 230, alpha: 255 }),
144        ("khaki", Color { red: 240, green: 230, blue: 140, alpha: 255 }),
145        ("coral", Color { red: 255, green: 127, blue: 80, alpha: 255 }),
146        ("brown", Color { red: 165, green: 42, blue: 42, alpha: 255 }),
147        ("mediumpurple", Color { red: 147, green: 112, blue: 219, alpha: 255 }),
148        ("linen", Color { red: 250, green: 240, blue: 230, alpha: 255 }),
149        ("mediumorchid", Color { red: 186, green: 85, blue: 211, alpha: 255 }),
150        ("indianred", Color { red: 205, green: 92, blue: 92, alpha: 255 }),
151        ("maroon", Color { red: 128, green: 0, blue: 0, alpha: 255 }),
152        ("firebrick", Color { red: 178, green: 34, blue: 34, alpha: 255 }),
153        ("skyblue", Color { red: 135, green: 206, blue: 235, alpha: 255 }),
154        ("darkgray", Color { red: 169, green: 169, blue: 169, alpha: 255 }),
155        ("hotpink", Color { red: 255, green: 105, blue: 180, alpha: 255 }),
156        ("olive", Color { red: 128, green: 128, blue: 0, alpha: 255 }),
157        ("sienna", Color { red: 160, green: 82, blue: 45, alpha: 255 }),
158        ("cadetblue", Color { red: 95, green: 158, blue: 160, alpha: 255 }),
159        ("darkslategray", Color { red: 47, green: 79, blue: 79, alpha: 255 }),
160        ("slateblue", Color { red: 106, green: 90, blue: 205, alpha: 255 }),
161        ("plum", Color { red: 221, green: 160, blue: 221, alpha: 255 }),
162        ("mediumspringgreen", Color { red: 0, green: 250, blue: 154, alpha: 255 }),
163        ("thistle", Color { red: 216, green: 191, blue: 216, alpha: 255 }),
164        ("mintcream", Color { red: 245, green: 255, blue: 250, alpha: 255 }),
165        ("darkmagenta", Color { red: 139, green: 0, blue: 139, alpha: 255 }),
166        ("lemonchiffon", Color { red: 255, green: 250, blue: 205, alpha: 255 }),
167        ("bisque", Color { red: 255, green: 228, blue: 196, alpha: 255 }),
168        ("antiquewhite", Color { red: 250, green: 235, blue: 215, alpha: 255 }),
169        ("darkgreen", Color { red: 0, green: 100, blue: 0, alpha: 255 }),
170        ("whitesmoke", Color { red: 245, green: 245, blue: 245, alpha: 255 }),
171        ("lightpink", Color { red: 255, green: 182, blue: 193, alpha: 255 }),
172        ("darkcyan", Color { red: 0, green: 139, blue: 139, alpha: 255 }),
173        ("tan", Color { red: 210, green: 180, blue: 140, alpha: 255 }),
174        ("blanchedalmond", Color { red: 255, green: 235, blue: 205, alpha: 255 }),
175        ("honeydew", Color { red: 240, green: 255, blue: 240, alpha: 255 }),
176        ("salmon", Color { red: 250, green: 128, blue: 114, alpha: 255 }),
177        ("lightyellow", Color { red: 255, green: 255, blue: 224, alpha: 255 }),
178        ("springgreen", Color { red: 0, green: 255, blue: 127, alpha: 255 }),
179        ("cornsilk", Color { red: 255, green: 248, blue: 220, alpha: 255 }),
180        ("sandybrown", Color { red: 244, green: 164, blue: 96, alpha: 255 }),
181        ("mediumaquamarine", Color { red: 102, green: 205, blue: 170, alpha: 255 }),
182        ("darkviolet", Color { red: 148, green: 0, blue: 211, alpha: 255 }),
183        ("darkolivegreen", Color { red: 85, green: 107, blue: 47, alpha: 255 }),
184        ("gold", Color { red: 255, green: 215, blue: 0, alpha: 255 }),
185        ("peachpuff", Color { red: 255, green: 218, blue: 185, alpha: 255 }),
186        ("greenyellow", Color { red: 173, green: 255, blue: 47, alpha: 255 }),
187        ("gray", Color { red: 128, green: 128, blue: 128, alpha: 255 }),
188        ("navy", Color { red: 0, green: 0, blue: 128, alpha: 255 }),
189        ("ghostwhite", Color { red: 248, green: 248, blue: 255, alpha: 255 }),
190        ("chocolate", Color { red: 210, green: 105, blue: 30, alpha: 255 }),
191    ],
192};
193
194pub fn from_str(text: &str) -> Option<Color> {
195    COLORS.get(text).cloned()
196}
197
198// A stripped down `phf` crate fork.
199//
200// https://github.com/sfackler/rust-phf
201
202use std::hash::Hasher;
203
204pub struct Map<V: 'static> {
205    pub key: u64,
206    pub disps: &'static [(u32, u32)],
207    pub entries: &'static[(&'static str, V)],
208}
209
210impl<V> Map<V> {
211    pub fn get(&self, key: &str) -> Option<&V> {
212        let hash = hash(key, self.key);
213        let index = get_index(hash, self.disps, self.entries.len());
214        let entry = &self.entries[index as usize];
215        if entry.0 == key {
216            Some(&entry.1)
217        } else {
218            None
219        }
220    }
221}
222
223#[inline]
224fn hash(x: &str, key: u64) -> u64 {
225    let mut hasher = siphasher::sip::SipHasher13::new_with_keys(0, key);
226    hasher.write(x.as_bytes());
227    hasher.finish()
228}
229
230#[inline]
231fn get_index(hash: u64, disps: &[(u32, u32)], len: usize) -> u32 {
232    let (g, f1, f2) = split(hash);
233    let (d1, d2) = disps[(g % (disps.len() as u32)) as usize];
234    displace(f1, f2, d1, d2) % (len as u32)
235}
236
237#[inline]
238fn split(hash: u64) -> (u32, u32, u32) {
239    const BITS: u32 = 21;
240    const MASK: u64 = (1 << BITS) - 1;
241
242    ((hash & MASK) as u32,
243     ((hash >> BITS) & MASK) as u32,
244     ((hash >> (2 * BITS)) & MASK) as u32)
245}
246
247#[inline]
248fn displace(f1: u32, f2: u32, d1: u32, d2: u32) -> u32 {
249    d2 + f1 * d1 + f2
250}