mxmlextrema_as3parser/util/
css.rs

1use std::collections::HashMap;
2use lazy_static::lazy_static;
3use maplit::hashmap;
4
5/// Converts a CSS [color constant](http://www.w3schools.com/css/css_colorsfull.asp) into an integer.
6pub fn css_color_constant_to_int(name: &str) -> Option<u32> {
7    COLOR_MAP.get(&name.to_lowercase()).map(|i| *i)
8}
9
10lazy_static! {
11    /// Map color constant names to 24-bit RGB integer values.
12    ///
13    /// See also: [CSS colors](http://www.w3schools.com/css/css_colorsfull.asp)
14    static ref COLOR_MAP: HashMap<String, u32> = hashmap! {
15        "black".into() => 0x000000,
16        "navy".into() => 0x000080,
17        "darkblue".into() => 0x00008b,
18        "mediumblue".into() => 0x0000cd,
19        "blue".into() => 0x0000ff,
20        "darkgreen".into() => 0x006400,
21        "green".into() => 0x008000,
22        "teal".into() => 0x008080,
23        "darkcyan".into() => 0x008b8b,
24        "deepskyblue".into() => 0x00bfff,
25        "darkturquoise".into() => 0x00ced1,
26        "mediumspringgreen".into() => 0x00fa9a,
27        "lime".into() => 0x00ff00,
28        "springgreen".into() => 0x00ff7f,
29        "aqua".into() => 0x00ffff,
30        "cyan".into() => 0x00ffff,
31        "midnightblue".into() => 0x191970,
32        "dodgerblue".into() => 0x1e90ff,
33        "lightseagreen".into() => 0x20b2aa,
34        "forestgreen".into() => 0x228b22,
35        "seagreen".into() => 0x2e8b57,
36        "darkslategray".into() => 0x2f4f4f,
37        "darkslategrey".into() => 0x2f4f4f,
38        "limegreen".into() => 0x32cd32,
39        "mediumseagreen".into() => 0x3cb371,
40        "turquoise".into() => 0x40e0d0,
41        "royalblue".into() => 0x4169e1,
42        "steelblue".into() => 0x4682b4,
43        "darkslateblue".into() => 0x483d8b,
44        "mediumturquoise".into() => 0x48d1cc,
45        "indigo ".into() => 0x4b0082,
46        "darkolivegreen".into() => 0x556b2f,
47        "cadetblue".into() => 0x5f9ea0,
48        "cornflowerblue".into() => 0x6495ed,
49        "mediumaquamarine".into() => 0x66cdaa,
50        "dimgray".into() => 0x696969,
51        "dimgrey".into() => 0x696969,
52        "slateblue".into() => 0x6a5acd,
53        "olivedrab".into() => 0x6b8e23,
54        "slategray".into() => 0x708090,
55        "slategrey".into() => 0x708090,
56        "lightslategray".into() => 0x778899,
57        "lightslategrey".into() => 0x778899,
58        "mediumslateblue".into() => 0x7b68ee,
59        "lawngreen".into() => 0x7cfc00,
60        "chartreuse".into() => 0x7fff00,
61        "aquamarine".into() => 0x7fffd4,
62        "maroon".into() => 0x800000,
63        "purple".into() => 0x800080,
64        "olive".into() => 0x808000,
65        "gray".into() => 0x808080,
66        "grey".into() => 0x808080,
67        "skyblue".into() => 0x87ceeb,
68        "lightskyblue".into() => 0x87cefa,
69        "blueviolet".into() => 0x8a2be2,
70        "darkred".into() => 0x8b0000,
71        "darkmagenta".into() => 0x8b008b,
72        "saddlebrown".into() => 0x8b4513,
73        "darkseagreen".into() => 0x8fbc8f,
74        "lightgreen".into() => 0x90ee90,
75        "mediumpurple".into() => 0x9370d8,
76        "darkviolet".into() => 0x9400d3,
77        "palegreen".into() => 0x98fb98,
78        "darkorchid".into() => 0x9932cc,
79        "yellowgreen".into() => 0x9acd32,
80        "sienna".into() => 0xa0522d,
81        "brown".into() => 0xa52a2a,
82        "darkgray".into() => 0xa9a9a9,
83        "darkgrey".into() => 0xa9a9a9,
84        "lightblue".into() => 0xadd8e6,
85        "greenyellow".into() => 0xadff2f,
86        "paleturquoise".into() => 0xafeeee,
87        "lightsteelblue".into() => 0xb0c4de,
88        "powderblue".into() => 0xb0e0e6,
89        "firebrick".into() => 0xb22222,
90        "darkgoldenrod".into() => 0xb8860b,
91        "mediumorchid".into() => 0xba55d3,
92        "rosybrown".into() => 0xbc8f8f,
93        "darkkhaki".into() => 0xbdb76b,
94        "silver".into() => 0xc0c0c0,
95        "mediumvioletred".into() => 0xc71585,
96        "indianred ".into() => 0xcd5c5c,
97        "peru".into() => 0xcd853f,
98        "chocolate".into() => 0xd2691e,
99        "tan".into() => 0xd2b48c,
100        "lightgray".into() => 0xd3d3d3,
101        "lightgrey".into() => 0xd3d3d3,
102        "palevioletred".into() => 0xd87093,
103        "thistle".into() => 0xd8bfd8,
104        "orchid".into() => 0xda70d6,
105        "goldenrod".into() => 0xdaa520,
106        "crimson".into() => 0xdc143c,
107        "gainsboro".into() => 0xdcdcdc,
108        "plum".into() => 0xdda0dd,
109        "burlywood".into() => 0xdeb887,
110        "lightcyan".into() => 0xe0ffff,
111        "lavender".into() => 0xe6e6fa,
112        "darksalmon".into() => 0xe9967a,
113        "violet".into() => 0xee82ee,
114        "palegoldenrod".into() => 0xeee8aa,
115        "lightcoral".into() => 0xf08080,
116        "khaki".into() => 0xf0e68c,
117        "aliceblue".into() => 0xf0f8ff,
118        "honeydew".into() => 0xf0fff0,
119        "azure".into() => 0xf0ffff,
120        "sandybrown".into() => 0xf4a460,
121        "wheat".into() => 0xf5deb3,
122        "beige".into() => 0xf5f5dc,
123        "whitesmoke".into() => 0xf5f5f5,
124        "mintcream".into() => 0xf5fffa,
125        "ghostwhite".into() => 0xf8f8ff,
126        "salmon".into() => 0xfa8072,
127        "antiquewhite".into() => 0xfaebd7,
128        "linen".into() => 0xfaf0e6,
129        "lightgoldenrodyellow".into() => 0xfafad2,
130        "oldlace".into() => 0xfdf5e6,
131        "red".into() => 0xff0000,
132        "fuchsia".into() => 0xff00ff,
133        "magenta".into() => 0xff00ff,
134        "deeppink".into() => 0xff1493,
135        "orangered".into() => 0xff4500,
136        "tomato".into() => 0xff6347,
137        "hotpink".into() => 0xff69b4,
138        "coral".into() => 0xff7f50,
139        "darkorange".into() => 0xff8c00,
140        "lightsalmon".into() => 0xffa07a,
141        "orange".into() => 0xffa500,
142        "lightpink".into() => 0xffb6c1,
143        "pink".into() => 0xffc0cb,
144        "gold".into() => 0xffd700,
145        "peachpuff".into() => 0xffdab9,
146        "navajowhite".into() => 0xffdead,
147        "moccasin".into() => 0xffe4b5,
148        "bisque".into() => 0xffe4c4,
149        "mistyrose".into() => 0xffe4e1,
150        "blanchedalmond".into() => 0xffebcd,
151        "papayawhip".into() => 0xffefd5,
152        "lavenderblush".into() => 0xfff0f5,
153        "seashell".into() => 0xfff5ee,
154        "cornsilk".into() => 0xfff8dc,
155        "lemonchiffon".into() => 0xfffacd,
156        "floralwhite".into() => 0xfffaf0,
157        "snow".into() => 0xfffafa,
158        "yellow".into() => 0xffff00,
159        "lightyellow".into() => 0xffffe0,
160        "ivory".into() => 0xfffff0,
161        "white".into() => 0xffffff,
162    };
163}