math2d/color.rs
1//! RGBA Colors. Many colors have predefined constants for convenience.
2
3#[cfg(all(windows, feature = "d2d"))]
4use winapi::um::d2dbasetypes::D2D_COLOR_F;
5
6/// Describes the red, green, blue, and alpha components of a color.
7#[derive(Copy, Clone, Debug, PartialEq)]
8#[cfg_attr(feature = "serde_derive", derive(Serialize, Deserialize))]
9#[repr(C)]
10pub struct Color {
11 /// Red channel [0.0, 1.0]
12 pub r: f32,
13 /// Green channel [0.0, 1.0]
14 pub g: f32,
15 /// Blue channel [0.0, 1.0]
16 pub b: f32,
17 /// Alpha channel [0.0, 1.0]
18 pub a: f32,
19}
20
21impl Color {
22 /// Construct a color from its floating components
23 #[inline]
24 pub fn new(r: f32, g: f32, b: f32, a: f32) -> Color {
25 Color { r, g, b, a }
26 }
27
28 /// Construct a color from its hexidecimal RGB color and floating point
29 /// alpha channel. `rgb` is interpreted as `0xRRGGBB`
30 #[inline]
31 pub fn from_u32(rgb: u32, a: f32) -> Color {
32 Color {
33 r: ((rgb >> 16) & 0xFF) as f32 / 255.0,
34 g: ((rgb >> 8) & 0xFF) as f32 / 255.0,
35 b: ((rgb >> 0) & 0xFF) as f32 / 255.0,
36 a: a,
37 }
38 }
39
40 /// Linearly interpolate between two colors. `0.0` will return `self` as-is
41 /// and `1.0` will return `other` as-is.
42 #[inline]
43 pub fn lerp(&self, other: &Color, t: f32) -> Color {
44 let ti = 1.0 - t;
45 Color {
46 r: self.r * ti + other.r * t,
47 g: self.g * ti + other.g * t,
48 b: self.b * ti + other.b * t,
49 a: self.a * ti + other.a * t,
50 }
51 }
52}
53
54impl Default for Color {
55 #[inline]
56 fn default() -> Self {
57 Color::from(0)
58 }
59}
60
61impl<'a> From<&'a Color> for Color {
62 #[inline]
63 fn from(color: &'a Color) -> Color {
64 *color
65 }
66}
67
68impl From<u32> for Color {
69 #[inline]
70 fn from(rgb: u32) -> Color {
71 Color::from_u32(rgb, 1.0)
72 }
73}
74
75impl From<(u32, f32)> for Color {
76 #[inline]
77 fn from((rgb, a): (u32, f32)) -> Color {
78 Color::from_u32(rgb, a)
79 }
80}
81
82#[cfg(all(windows, feature = "d2d"))]
83impl From<Color> for D2D_COLOR_F {
84 #[inline]
85 fn from(color: Color) -> D2D_COLOR_F {
86 let Color { r, g, b, a } = color;
87 D2D_COLOR_F { r, g, b, a }
88 }
89}
90
91#[cfg(all(windows, feature = "d2d"))]
92impl From<D2D_COLOR_F> for Color {
93 #[inline]
94 fn from(color: D2D_COLOR_F) -> Color {
95 let D2D_COLOR_F { r, g, b, a } = color;
96 Color { r, g, b, a }
97 }
98}
99
100// TODO: Replace this with a const fn when it's stable
101macro_rules! define_color {
102 ($r:expr, $g:expr, $b:expr) => {
103 Color {
104 r: $r as f32 / 255.0,
105 g: $g as f32 / 255.0,
106 b: $b as f32 / 255.0,
107 a: 1.0,
108 }
109 };
110}
111
112/// <div style="background-color: #F0F8FF; width: 25px; height: 25px"></div>
113pub const ALICE_BLUE: Color = define_color!(0xF0, 0xF8, 0xFF);
114/// <div style="background-color: #FAEBD7; width: 25px; height: 25px"></div>
115pub const ANTIQUE_WHITE: Color = define_color!(0xFA, 0xEB, 0xD7);
116/// <div style="background-color: #00FFFF; width: 25px; height: 25px"></div>
117pub const AQUA: Color = define_color!(0x00, 0xFF, 0xFF);
118/// <div style="background-color: #7FFFD4; width: 25px; height: 25px"></div>
119pub const AQUAMARINE: Color = define_color!(0x7F, 0xFF, 0xD4);
120/// <div style="background-color: #F0FFFF; width: 25px; height: 25px"></div>
121pub const AZURE: Color = define_color!(0xF0, 0xFF, 0xFF);
122/// <div style="background-color: #F5F5DC; width: 25px; height: 25px"></div>
123pub const BEIGE: Color = define_color!(0xF5, 0xF5, 0xDC);
124/// <div style="background-color: #FFE4C4; width: 25px; height: 25px"></div>
125pub const BISQUE: Color = define_color!(0xFF, 0xE4, 0xC4);
126/// <div style="background-color: #000000; width: 25px; height: 25px"></div>
127pub const BLACK: Color = define_color!(0x00, 0x00, 0x00);
128/// <div style="background-color: #FFEBCD; width: 25px; height: 25px"></div>
129pub const BLANCHED_ALMOND: Color = define_color!(0xFF, 0xEB, 0xCD);
130/// <div style="background-color: #0000FF; width: 25px; height: 25px"></div>
131pub const BLUE: Color = define_color!(0x00, 0x00, 0xFF);
132/// <div style="background-color: #8A2BE2; width: 25px; height: 25px"></div>
133pub const BLUE_VIOLET: Color = define_color!(0x8A, 0x2B, 0xE2);
134/// <div style="background-color: #A52A2A; width: 25px; height: 25px"></div>
135pub const BROWN: Color = define_color!(0xA5, 0x2A, 0x2A);
136/// <div style="background-color: #DEB887; width: 25px; height: 25px"></div>
137pub const BURLY_WOOD: Color = define_color!(0xDE, 0xB8, 0x87);
138/// <div style="background-color: #5F9EA0; width: 25px; height: 25px"></div>
139pub const CADET_BLUE: Color = define_color!(0x5F, 0x9E, 0xA0);
140/// <div style="background-color: #7FFF00; width: 25px; height: 25px"></div>
141pub const CHARTREUSE: Color = define_color!(0x7F, 0xFF, 0x00);
142/// <div style="background-color: #D2691E; width: 25px; height: 25px"></div>
143pub const CHOCOLATE: Color = define_color!(0xD2, 0x69, 0x1E);
144/// <div style="background-color: #FF7F50; width: 25px; height: 25px"></div>
145pub const CORAL: Color = define_color!(0xFF, 0x7F, 0x50);
146/// <div style="background-color: #6495ED; width: 25px; height: 25px"></div>
147pub const CORNFLOWER_BLUE: Color = define_color!(0x64, 0x95, 0xED);
148/// <div style="background-color: #FFF8DC; width: 25px; height: 25px"></div>
149pub const CORNSILK: Color = define_color!(0xFF, 0xF8, 0xDC);
150/// <div style="background-color: #DC143C; width: 25px; height: 25px"></div>
151pub const CRIMSON: Color = define_color!(0xDC, 0x14, 0x3C);
152/// <div style="background-color: #00FFFF; width: 25px; height: 25px"></div>
153pub const CYAN: Color = define_color!(0x00, 0xFF, 0xFF);
154/// <div style="background-color: #00008B; width: 25px; height: 25px"></div>
155pub const DARK_BLUE: Color = define_color!(0x00, 0x00, 0x8B);
156/// <div style="background-color: #008B8B; width: 25px; height: 25px"></div>
157pub const DARK_CYAN: Color = define_color!(0x00, 0x8B, 0x8B);
158/// <div style="background-color: #B8860B; width: 25px; height: 25px"></div>
159pub const DARK_GOLDENROD: Color = define_color!(0xB8, 0x86, 0x0B);
160/// <div style="background-color: #A9A9A9; width: 25px; height: 25px"></div>
161pub const DARK_GRAY: Color = define_color!(0xA9, 0xA9, 0xA9);
162/// <div style="background-color: #006400; width: 25px; height: 25px"></div>
163pub const DARK_GREEN: Color = define_color!(0x00, 0x64, 0x00);
164/// <div style="background-color: #BDB76B; width: 25px; height: 25px"></div>
165pub const DARK_KHAKI: Color = define_color!(0xBD, 0xB7, 0x6B);
166/// <div style="background-color: #8B008B; width: 25px; height: 25px"></div>
167pub const DARK_MAGENTA: Color = define_color!(0x8B, 0x00, 0x8B);
168/// <div style="background-color: #556B2F; width: 25px; height: 25px"></div>
169pub const DARK_OLIVEGREEN: Color = define_color!(0x55, 0x6B, 0x2F);
170/// <div style="background-color: #FF8C00; width: 25px; height: 25px"></div>
171pub const DARK_ORANGE: Color = define_color!(0xFF, 0x8C, 0x00);
172/// <div style="background-color: #9932CC; width: 25px; height: 25px"></div>
173pub const DARK_ORCHID: Color = define_color!(0x99, 0x32, 0xCC);
174/// <div style="background-color: #8B0000; width: 25px; height: 25px"></div>
175pub const DARK_RED: Color = define_color!(0x8B, 0x00, 0x00);
176/// <div style="background-color: #E9967A; width: 25px; height: 25px"></div>
177pub const DARK_SALMON: Color = define_color!(0xE9, 0x96, 0x7A);
178/// <div style="background-color: #8FBC8F; width: 25px; height: 25px"></div>
179pub const DARK_SEAGREEN: Color = define_color!(0x8F, 0xBC, 0x8F);
180/// <div style="background-color: #483D8B; width: 25px; height: 25px"></div>
181pub const DARK_SLATEBLUE: Color = define_color!(0x48, 0x3D, 0x8B);
182/// <div style="background-color: #2F4F4F; width: 25px; height: 25px"></div>
183pub const DARK_SLATEGRAY: Color = define_color!(0x2F, 0x4F, 0x4F);
184/// <div style="background-color: #00CED1; width: 25px; height: 25px"></div>
185pub const DARK_TURQUOISE: Color = define_color!(0x00, 0xCE, 0xD1);
186/// <div style="background-color: #9400D3; width: 25px; height: 25px"></div>
187pub const DARK_VIOLET: Color = define_color!(0x94, 0x00, 0xD3);
188/// <div style="background-color: #FF1493; width: 25px; height: 25px"></div>
189pub const DEEP_PINK: Color = define_color!(0xFF, 0x14, 0x93);
190/// <div style="background-color: #00BFFF; width: 25px; height: 25px"></div>
191pub const DEEP_SKYBLUE: Color = define_color!(0x00, 0xBF, 0xFF);
192/// <div style="background-color: #696969; width: 25px; height: 25px"></div>
193pub const DIM_GRAY: Color = define_color!(0x69, 0x69, 0x69);
194/// <div style="background-color: #1E90FF; width: 25px; height: 25px"></div>
195pub const DODGER_BLUE: Color = define_color!(0x1E, 0x90, 0xFF);
196/// <div style="background-color: #B22222; width: 25px; height: 25px"></div>
197pub const FIREBRICK: Color = define_color!(0xB2, 0x22, 0x22);
198/// <div style="background-color: #FFFAF0; width: 25px; height: 25px"></div>
199pub const FLORAL_WHITE: Color = define_color!(0xFF, 0xFA, 0xF0);
200/// <div style="background-color: #228B22; width: 25px; height: 25px"></div>
201pub const FOREST_GREEN: Color = define_color!(0x22, 0x8B, 0x22);
202/// <div style="background-color: #FF00FF; width: 25px; height: 25px"></div>
203pub const FUCHSIA: Color = define_color!(0xFF, 0x00, 0xFF);
204/// <div style="background-color: #DCDCDC; width: 25px; height: 25px"></div>
205pub const GAINSBORO: Color = define_color!(0xDC, 0xDC, 0xDC);
206/// <div style="background-color: #F8F8FF; width: 25px; height: 25px"></div>
207pub const GHOST_WHITE: Color = define_color!(0xF8, 0xF8, 0xFF);
208/// <div style="background-color: #FFD700; width: 25px; height: 25px"></div>
209pub const GOLD: Color = define_color!(0xFF, 0xD7, 0x00);
210/// <div style="background-color: #DAA520; width: 25px; height: 25px"></div>
211pub const GOLDENROD: Color = define_color!(0xDA, 0xA5, 0x20);
212/// <div style="background-color: #808080; width: 25px; height: 25px"></div>
213pub const GRAY: Color = define_color!(0x80, 0x80, 0x80);
214/// <div style="background-color: #008000; width: 25px; height: 25px"></div>
215pub const GREEN: Color = define_color!(0x00, 0x80, 0x00);
216/// <div style="background-color: #ADFF2F; width: 25px; height: 25px"></div>
217pub const GREEN_YELLOW: Color = define_color!(0xAD, 0xFF, 0x2F);
218/// <div style="background-color: #F0FFF0; width: 25px; height: 25px"></div>
219pub const HONEYDEW: Color = define_color!(0xF0, 0xFF, 0xF0);
220/// <div style="background-color: #FF69B4; width: 25px; height: 25px"></div>
221pub const HOT_PINK: Color = define_color!(0xFF, 0x69, 0xB4);
222/// <div style="background-color: #CD5C5C; width: 25px; height: 25px"></div>
223pub const INDIAN_RED: Color = define_color!(0xCD, 0x5C, 0x5C);
224/// <div style="background-color: #4B0082; width: 25px; height: 25px"></div>
225pub const INDIGO: Color = define_color!(0x4B, 0x00, 0x82);
226/// <div style="background-color: #FFFFF0; width: 25px; height: 25px"></div>
227pub const IVORY: Color = define_color!(0xFF, 0xFF, 0xF0);
228/// <div style="background-color: #F0E68C; width: 25px; height: 25px"></div>
229pub const KHAKI: Color = define_color!(0xF0, 0xE6, 0x8C);
230/// <div style="background-color: #E6E6FA; width: 25px; height: 25px"></div>
231pub const LAVENDER: Color = define_color!(0xE6, 0xE6, 0xFA);
232/// <div style="background-color: #FFF0F5; width: 25px; height: 25px"></div>
233pub const LAVENDER_BLUSH: Color = define_color!(0xFF, 0xF0, 0xF5);
234/// <div style="background-color: #7CFC00; width: 25px; height: 25px"></div>
235pub const LAWN_GREEN: Color = define_color!(0x7C, 0xFC, 0x00);
236/// <div style="background-color: #FFFACD; width: 25px; height: 25px"></div>
237pub const LEMON_CHIFFON: Color = define_color!(0xFF, 0xFA, 0xCD);
238/// <div style="background-color: #ADD8E6; width: 25px; height: 25px"></div>
239pub const LIGHT_BLUE: Color = define_color!(0xAD, 0xD8, 0xE6);
240/// <div style="background-color: #F08080; width: 25px; height: 25px"></div>
241pub const LIGHT_CORAL: Color = define_color!(0xF0, 0x80, 0x80);
242/// <div style="background-color: #E0FFFF; width: 25px; height: 25px"></div>
243pub const LIGHT_CYAN: Color = define_color!(0xE0, 0xFF, 0xFF);
244/// <div style="background-color: #FAFAD2; width: 25px; height: 25px"></div>
245pub const LIGHT_GOLDENRODYELLOW: Color = define_color!(0xFA, 0xFA, 0xD2);
246/// <div style="background-color: #90EE90; width: 25px; height: 25px"></div>
247pub const LIGHT_GREEN: Color = define_color!(0x90, 0xEE, 0x90);
248/// <div style="background-color: #D3D3D3; width: 25px; height: 25px"></div>
249pub const LIGHT_GRAY: Color = define_color!(0xD3, 0xD3, 0xD3);
250/// <div style="background-color: #FFB6C1; width: 25px; height: 25px"></div>
251pub const LIGHT_PINK: Color = define_color!(0xFF, 0xB6, 0xC1);
252/// <div style="background-color: #FFA07A; width: 25px; height: 25px"></div>
253pub const LIGHT_SALMON: Color = define_color!(0xFF, 0xA0, 0x7A);
254/// <div style="background-color: #20B2AA; width: 25px; height: 25px"></div>
255pub const LIGHT_SEAGREEN: Color = define_color!(0x20, 0xB2, 0xAA);
256/// <div style="background-color: #87CEFA; width: 25px; height: 25px"></div>
257pub const LIGHT_SKYBLUE: Color = define_color!(0x87, 0xCE, 0xFA);
258/// <div style="background-color: #778899; width: 25px; height: 25px"></div>
259pub const LIGHT_SLATEGRAY: Color = define_color!(0x77, 0x88, 0x99);
260/// <div style="background-color: #B0C4DE; width: 25px; height: 25px"></div>
261pub const LIGHT_STEELBLUE: Color = define_color!(0xB0, 0xC4, 0xDE);
262/// <div style="background-color: #FFFFE0; width: 25px; height: 25px"></div>
263pub const LIGHT_YELLOW: Color = define_color!(0xFF, 0xFF, 0xE0);
264/// <div style="background-color: #00FF00; width: 25px; height: 25px"></div>
265pub const LIME: Color = define_color!(0x00, 0xFF, 0x00);
266/// <div style="background-color: #32CD32; width: 25px; height: 25px"></div>
267pub const LIME_GREEN: Color = define_color!(0x32, 0xCD, 0x32);
268/// <div style="background-color: #FAF0E6; width: 25px; height: 25px"></div>
269pub const LINEN: Color = define_color!(0xFA, 0xF0, 0xE6);
270/// <div style="background-color: #FF00FF; width: 25px; height: 25px"></div>
271pub const MAGENTA: Color = define_color!(0xFF, 0x00, 0xFF);
272/// <div style="background-color: #800000; width: 25px; height: 25px"></div>
273pub const MAROON: Color = define_color!(0x80, 0x00, 0x00);
274/// <div style="background-color: #66CDAA; width: 25px; height: 25px"></div>
275pub const MEDIUM_AQUAMARINE: Color = define_color!(0x66, 0xCD, 0xAA);
276/// <div style="background-color: #0000CD; width: 25px; height: 25px"></div>
277pub const MEDIUM_BLUE: Color = define_color!(0x00, 0x00, 0xCD);
278/// <div style="background-color: #BA55D3; width: 25px; height: 25px"></div>
279pub const MEDIUM_ORCHID: Color = define_color!(0xBA, 0x55, 0xD3);
280/// <div style="background-color: #9370DB; width: 25px; height: 25px"></div>
281pub const MEDIUM_PURPLE: Color = define_color!(0x93, 0x70, 0xDB);
282/// <div style="background-color: #3CB371; width: 25px; height: 25px"></div>
283pub const MEDIUM_SEAGREEN: Color = define_color!(0x3C, 0xB3, 0x71);
284/// <div style="background-color: #7B68EE; width: 25px; height: 25px"></div>
285pub const MEDIUM_SLATEBLUE: Color = define_color!(0x7B, 0x68, 0xEE);
286/// <div style="background-color: #00FA9A; width: 25px; height: 25px"></div>
287pub const MEDIUM_SPRINGGREEN: Color = define_color!(0x00, 0xFA, 0x9A);
288/// <div style="background-color: #48D1CC; width: 25px; height: 25px"></div>
289pub const MEDIUM_TURQUOISE: Color = define_color!(0x48, 0xD1, 0xCC);
290/// <div style="background-color: #C71585; width: 25px; height: 25px"></div>
291pub const MEDIUM_VIOLETRED: Color = define_color!(0xC7, 0x15, 0x85);
292/// <div style="background-color: #191970; width: 25px; height: 25px"></div>
293pub const MIDNIGHT_BLUE: Color = define_color!(0x19, 0x19, 0x70);
294/// <div style="background-color: #F5FFFA; width: 25px; height: 25px"></div>
295pub const MINT_CREAM: Color = define_color!(0xF5, 0xFF, 0xFA);
296/// <div style="background-color: #FFE4E1; width: 25px; height: 25px"></div>
297pub const MISTY_ROSE: Color = define_color!(0xFF, 0xE4, 0xE1);
298/// <div style="background-color: #FFE4B5; width: 25px; height: 25px"></div>
299pub const MOCCASIN: Color = define_color!(0xFF, 0xE4, 0xB5);
300/// <div style="background-color: #FFDEAD; width: 25px; height: 25px"></div>
301pub const NAVAJO_WHITE: Color = define_color!(0xFF, 0xDE, 0xAD);
302/// <div style="background-color: #000080; width: 25px; height: 25px"></div>
303pub const NAVY: Color = define_color!(0x00, 0x00, 0x80);
304/// <div style="background-color: #FDF5E6; width: 25px; height: 25px"></div>
305pub const OLD_LACE: Color = define_color!(0xFD, 0xF5, 0xE6);
306/// <div style="background-color: #808000; width: 25px; height: 25px"></div>
307pub const OLIVE: Color = define_color!(0x80, 0x80, 0x00);
308/// <div style="background-color: #6B8E23; width: 25px; height: 25px"></div>
309pub const OLIVE_DRAB: Color = define_color!(0x6B, 0x8E, 0x23);
310/// <div style="background-color: #FFA500; width: 25px; height: 25px"></div>
311pub const ORANGE: Color = define_color!(0xFF, 0xA5, 0x00);
312/// <div style="background-color: #FF4500; width: 25px; height: 25px"></div>
313pub const ORANGE_RED: Color = define_color!(0xFF, 0x45, 0x00);
314/// <div style="background-color: #DA70D6; width: 25px; height: 25px"></div>
315pub const ORCHID: Color = define_color!(0xDA, 0x70, 0xD6);
316/// <div style="background-color: #EEE8AA; width: 25px; height: 25px"></div>
317pub const PALE_GOLDENROD: Color = define_color!(0xEE, 0xE8, 0xAA);
318/// <div style="background-color: #98FB98; width: 25px; height: 25px"></div>
319pub const PALE_GREEN: Color = define_color!(0x98, 0xFB, 0x98);
320/// <div style="background-color: #AFEEEE; width: 25px; height: 25px"></div>
321pub const PALE_TURQUOISE: Color = define_color!(0xAF, 0xEE, 0xEE);
322/// <div style="background-color: #DB7093; width: 25px; height: 25px"></div>
323pub const PALE_VIOLETRED: Color = define_color!(0xDB, 0x70, 0x93);
324/// <div style="background-color: #FFEFD5; width: 25px; height: 25px"></div>
325pub const PAPAYA_WHIP: Color = define_color!(0xFF, 0xEF, 0xD5);
326/// <div style="background-color: #FFDAB9; width: 25px; height: 25px"></div>
327pub const PEACH_PUFF: Color = define_color!(0xFF, 0xDA, 0xB9);
328/// <div style="background-color: #CD853F; width: 25px; height: 25px"></div>
329pub const PERU: Color = define_color!(0xCD, 0x85, 0x3F);
330/// <div style="background-color: #FFC0CB; width: 25px; height: 25px"></div>
331pub const PINK: Color = define_color!(0xFF, 0xC0, 0xCB);
332/// <div style="background-color: #DDA0DD; width: 25px; height: 25px"></div>
333pub const PLUM: Color = define_color!(0xDD, 0xA0, 0xDD);
334/// <div style="background-color: #B0E0E6; width: 25px; height: 25px"></div>
335pub const POWDER_BLUE: Color = define_color!(0xB0, 0xE0, 0xE6);
336/// <div style="background-color: #800080; width: 25px; height: 25px"></div>
337pub const PURPLE: Color = define_color!(0x80, 0x00, 0x80);
338/// <div style="background-color: #FF0000; width: 25px; height: 25px"></div>
339pub const RED: Color = define_color!(0xFF, 0x00, 0x00);
340/// <div style="background-color: #BC8F8F; width: 25px; height: 25px"></div>
341pub const ROSY_BROWN: Color = define_color!(0xBC, 0x8F, 0x8F);
342/// <div style="background-color: #4169E1; width: 25px; height: 25px"></div>
343pub const ROYAL_BLUE: Color = define_color!(0x41, 0x69, 0xE1);
344/// <div style="background-color: #8B4513; width: 25px; height: 25px"></div>
345pub const SADDLE_BROWN: Color = define_color!(0x8B, 0x45, 0x13);
346/// <div style="background-color: #FA8072; width: 25px; height: 25px"></div>
347pub const SALMON: Color = define_color!(0xFA, 0x80, 0x72);
348/// <div style="background-color: #F4A460; width: 25px; height: 25px"></div>
349pub const SANDY_BROWN: Color = define_color!(0xF4, 0xA4, 0x60);
350/// <div style="background-color: #2E8B57; width: 25px; height: 25px"></div>
351pub const SEA_GREEN: Color = define_color!(0x2E, 0x8B, 0x57);
352/// <div style="background-color: #FFF5EE; width: 25px; height: 25px"></div>
353pub const SEA_SHELL: Color = define_color!(0xFF, 0xF5, 0xEE);
354/// <div style="background-color: #A0522D; width: 25px; height: 25px"></div>
355pub const SIENNA: Color = define_color!(0xA0, 0x52, 0x2D);
356/// <div style="background-color: #C0C0C0; width: 25px; height: 25px"></div>
357pub const SILVER: Color = define_color!(0xC0, 0xC0, 0xC0);
358/// <div style="background-color: #87CEEB; width: 25px; height: 25px"></div>
359pub const SKY_BLUE: Color = define_color!(0x87, 0xCE, 0xEB);
360/// <div style="background-color: #6A5ACD; width: 25px; height: 25px"></div>
361pub const SLATE_BLUE: Color = define_color!(0x6A, 0x5A, 0xCD);
362/// <div style="background-color: #708090; width: 25px; height: 25px"></div>
363pub const SLATE_GRAY: Color = define_color!(0x70, 0x80, 0x90);
364/// <div style="background-color: #FFFAFA; width: 25px; height: 25px"></div>
365pub const SNOW: Color = define_color!(0xFF, 0xFA, 0xFA);
366/// <div style="background-color: #00FF7F; width: 25px; height: 25px"></div>
367pub const SPRING_GREEN: Color = define_color!(0x00, 0xFF, 0x7F);
368/// <div style="background-color: #4682B4; width: 25px; height: 25px"></div>
369pub const STEEL_BLUE: Color = define_color!(0x46, 0x82, 0xB4);
370/// <div style="background-color: #D2B48C; width: 25px; height: 25px"></div>
371pub const TAN: Color = define_color!(0xD2, 0xB4, 0x8C);
372/// <div style="background-color: #008080; width: 25px; height: 25px"></div>
373pub const TEAL: Color = define_color!(0x00, 0x80, 0x80);
374/// <div style="background-color: #D8BFD8; width: 25px; height: 25px"></div>
375pub const THISTLE: Color = define_color!(0xD8, 0xBF, 0xD8);
376/// <div style="background-color: #FF6347; width: 25px; height: 25px"></div>
377pub const TOMATO: Color = define_color!(0xFF, 0x63, 0x47);
378/// <div style="background-color: #40E0D0; width: 25px; height: 25px"></div>
379pub const TURQUOISE: Color = define_color!(0x40, 0xE0, 0xD0);
380/// <div style="background-color: #EE82EE; width: 25px; height: 25px"></div>
381pub const VIOLET: Color = define_color!(0xEE, 0x82, 0xEE);
382/// <div style="background-color: #F5DEB3; width: 25px; height: 25px"></div>
383pub const WHEAT: Color = define_color!(0xF5, 0xDE, 0xB3);
384/// <div style="background-color: #FFFFFF; width: 25px; height: 25px"></div>
385pub const WHITE: Color = define_color!(0xFF, 0xFF, 0xFF);
386/// <div style="background-color: #F5F5F5; width: 25px; height: 25px"></div>
387pub const WHITE_SMOKE: Color = define_color!(0xF5, 0xF5, 0xF5);
388/// <div style="background-color: #FFFF00; width: 25px; height: 25px"></div>
389pub const YELLOW: Color = define_color!(0xFF, 0xFF, 0x00);
390/// <div style="background-color: #9ACD32; width: 25px; height: 25px"></div>
391pub const YELLOW_GREEN: Color = define_color!(0x9A, 0xCD, 0x32);
392
393impl Color {
394 /// <div style="background-color: #F0F8FF; width: 25px; height: 25px"></div>
395 pub const ALICE_BLUE: Color = ALICE_BLUE;
396 /// <div style="background-color: #FAEBD7; width: 25px; height: 25px"></div>
397 pub const ANTIQUE_WHITE: Color = ANTIQUE_WHITE;
398 /// <div style="background-color: #00FFFF; width: 25px; height: 25px"></div>
399 pub const AQUA: Color = AQUA;
400 /// <div style="background-color: #7FFFD4; width: 25px; height: 25px"></div>
401 pub const AQUAMARINE: Color = AQUAMARINE;
402 /// <div style="background-color: #F0FFFF; width: 25px; height: 25px"></div>
403 pub const AZURE: Color = AZURE;
404 /// <div style="background-color: #F5F5DC; width: 25px; height: 25px"></div>
405 pub const BEIGE: Color = BEIGE;
406 /// <div style="background-color: #FFE4C4; width: 25px; height: 25px"></div>
407 pub const BISQUE: Color = BISQUE;
408 /// <div style="background-color: #000000; width: 25px; height: 25px"></div>
409 pub const BLACK: Color = BLACK;
410 /// <div style="background-color: #FFEBCD; width: 25px; height: 25px"></div>
411 pub const BLANCHED_ALMOND: Color = BLANCHED_ALMOND;
412 /// <div style="background-color: #0000FF; width: 25px; height: 25px"></div>
413 pub const BLUE: Color = BLUE;
414 /// <div style="background-color: #8A2BE2; width: 25px; height: 25px"></div>
415 pub const BLUE_VIOLET: Color = BLUE_VIOLET;
416 /// <div style="background-color: #A52A2A; width: 25px; height: 25px"></div>
417 pub const BROWN: Color = BROWN;
418 /// <div style="background-color: #DEB887; width: 25px; height: 25px"></div>
419 pub const BURLY_WOOD: Color = BURLY_WOOD;
420 /// <div style="background-color: #5F9EA0; width: 25px; height: 25px"></div>
421 pub const CADET_BLUE: Color = CADET_BLUE;
422 /// <div style="background-color: #7FFF00; width: 25px; height: 25px"></div>
423 pub const CHARTREUSE: Color = CHARTREUSE;
424 /// <div style="background-color: #D2691E; width: 25px; height: 25px"></div>
425 pub const CHOCOLATE: Color = CHOCOLATE;
426 /// <div style="background-color: #FF7F50; width: 25px; height: 25px"></div>
427 pub const CORAL: Color = CORAL;
428 /// <div style="background-color: #6495ED; width: 25px; height: 25px"></div>
429 pub const CORNFLOWER_BLUE: Color = CORNFLOWER_BLUE;
430 /// <div style="background-color: #FFF8DC; width: 25px; height: 25px"></div>
431 pub const CORNSILK: Color = CORNSILK;
432 /// <div style="background-color: #DC143C; width: 25px; height: 25px"></div>
433 pub const CRIMSON: Color = CRIMSON;
434 /// <div style="background-color: #00FFFF; width: 25px; height: 25px"></div>
435 pub const CYAN: Color = CYAN;
436 /// <div style="background-color: #00008B; width: 25px; height: 25px"></div>
437 pub const DARK_BLUE: Color = DARK_BLUE;
438 /// <div style="background-color: #008B8B; width: 25px; height: 25px"></div>
439 pub const DARK_CYAN: Color = DARK_CYAN;
440 /// <div style="background-color: #B8860B; width: 25px; height: 25px"></div>
441 pub const DARK_GOLDENROD: Color = DARK_GOLDENROD;
442 /// <div style="background-color: #A9A9A9; width: 25px; height: 25px"></div>
443 pub const DARK_GRAY: Color = DARK_GRAY;
444 /// <div style="background-color: #006400; width: 25px; height: 25px"></div>
445 pub const DARK_GREEN: Color = DARK_GREEN;
446 /// <div style="background-color: #BDB76B; width: 25px; height: 25px"></div>
447 pub const DARK_KHAKI: Color = DARK_KHAKI;
448 /// <div style="background-color: #8B008B; width: 25px; height: 25px"></div>
449 pub const DARK_MAGENTA: Color = DARK_MAGENTA;
450 /// <div style="background-color: #556B2F; width: 25px; height: 25px"></div>
451 pub const DARK_OLIVEGREEN: Color = DARK_OLIVEGREEN;
452 /// <div style="background-color: #FF8C00; width: 25px; height: 25px"></div>
453 pub const DARK_ORANGE: Color = DARK_ORANGE;
454 /// <div style="background-color: #9932CC; width: 25px; height: 25px"></div>
455 pub const DARK_ORCHID: Color = DARK_ORCHID;
456 /// <div style="background-color: #8B0000; width: 25px; height: 25px"></div>
457 pub const DARK_RED: Color = DARK_RED;
458 /// <div style="background-color: #E9967A; width: 25px; height: 25px"></div>
459 pub const DARK_SALMON: Color = DARK_SALMON;
460 /// <div style="background-color: #8FBC8F; width: 25px; height: 25px"></div>
461 pub const DARK_SEAGREEN: Color = DARK_SEAGREEN;
462 /// <div style="background-color: #483D8B; width: 25px; height: 25px"></div>
463 pub const DARK_SLATEBLUE: Color = DARK_SLATEBLUE;
464 /// <div style="background-color: #2F4F4F; width: 25px; height: 25px"></div>
465 pub const DARK_SLATEGRAY: Color = DARK_SLATEGRAY;
466 /// <div style="background-color: #00CED1; width: 25px; height: 25px"></div>
467 pub const DARK_TURQUOISE: Color = DARK_TURQUOISE;
468 /// <div style="background-color: #9400D3; width: 25px; height: 25px"></div>
469 pub const DARK_VIOLET: Color = DARK_VIOLET;
470 /// <div style="background-color: #FF1493; width: 25px; height: 25px"></div>
471 pub const DEEP_PINK: Color = DEEP_PINK;
472 /// <div style="background-color: #00BFFF; width: 25px; height: 25px"></div>
473 pub const DEEP_SKYBLUE: Color = DEEP_SKYBLUE;
474 /// <div style="background-color: #696969; width: 25px; height: 25px"></div>
475 pub const DIM_GRAY: Color = DIM_GRAY;
476 /// <div style="background-color: #1E90FF; width: 25px; height: 25px"></div>
477 pub const DODGER_BLUE: Color = DODGER_BLUE;
478 /// <div style="background-color: #B22222; width: 25px; height: 25px"></div>
479 pub const FIREBRICK: Color = FIREBRICK;
480 /// <div style="background-color: #FFFAF0; width: 25px; height: 25px"></div>
481 pub const FLORAL_WHITE: Color = FLORAL_WHITE;
482 /// <div style="background-color: #228B22; width: 25px; height: 25px"></div>
483 pub const FOREST_GREEN: Color = FOREST_GREEN;
484 /// <div style="background-color: #FF00FF; width: 25px; height: 25px"></div>
485 pub const FUCHSIA: Color = FUCHSIA;
486 /// <div style="background-color: #DCDCDC; width: 25px; height: 25px"></div>
487 pub const GAINSBORO: Color = GAINSBORO;
488 /// <div style="background-color: #F8F8FF; width: 25px; height: 25px"></div>
489 pub const GHOST_WHITE: Color = GHOST_WHITE;
490 /// <div style="background-color: #FFD700; width: 25px; height: 25px"></div>
491 pub const GOLD: Color = GOLD;
492 /// <div style="background-color: #DAA520; width: 25px; height: 25px"></div>
493 pub const GOLDENROD: Color = GOLDENROD;
494 /// <div style="background-color: #808080; width: 25px; height: 25px"></div>
495 pub const GRAY: Color = GRAY;
496 /// <div style="background-color: #008000; width: 25px; height: 25px"></div>
497 pub const GREEN: Color = GREEN;
498 /// <div style="background-color: #ADFF2F; width: 25px; height: 25px"></div>
499 pub const GREEN_YELLOW: Color = GREEN_YELLOW;
500 /// <div style="background-color: #F0FFF0; width: 25px; height: 25px"></div>
501 pub const HONEYDEW: Color = HONEYDEW;
502 /// <div style="background-color: #FF69B4; width: 25px; height: 25px"></div>
503 pub const HOT_PINK: Color = HOT_PINK;
504 /// <div style="background-color: #CD5C5C; width: 25px; height: 25px"></div>
505 pub const INDIAN_RED: Color = INDIAN_RED;
506 /// <div style="background-color: #4B0082; width: 25px; height: 25px"></div>
507 pub const INDIGO: Color = INDIGO;
508 /// <div style="background-color: #FFFFF0; width: 25px; height: 25px"></div>
509 pub const IVORY: Color = IVORY;
510 /// <div style="background-color: #F0E68C; width: 25px; height: 25px"></div>
511 pub const KHAKI: Color = KHAKI;
512 /// <div style="background-color: #E6E6FA; width: 25px; height: 25px"></div>
513 pub const LAVENDER: Color = LAVENDER;
514 /// <div style="background-color: #FFF0F5; width: 25px; height: 25px"></div>
515 pub const LAVENDER_BLUSH: Color = LAVENDER_BLUSH;
516 /// <div style="background-color: #7CFC00; width: 25px; height: 25px"></div>
517 pub const LAWN_GREEN: Color = LAWN_GREEN;
518 /// <div style="background-color: #FFFACD; width: 25px; height: 25px"></div>
519 pub const LEMON_CHIFFON: Color = LEMON_CHIFFON;
520 /// <div style="background-color: #ADD8E6; width: 25px; height: 25px"></div>
521 pub const LIGHT_BLUE: Color = LIGHT_BLUE;
522 /// <div style="background-color: #F08080; width: 25px; height: 25px"></div>
523 pub const LIGHT_CORAL: Color = LIGHT_CORAL;
524 /// <div style="background-color: #E0FFFF; width: 25px; height: 25px"></div>
525 pub const LIGHT_CYAN: Color = LIGHT_CYAN;
526 /// <div style="background-color: #FAFAD2; width: 25px; height: 25px"></div>
527 pub const LIGHT_GOLDENRODYELLOW: Color = LIGHT_GOLDENRODYELLOW;
528 /// <div style="background-color: #90EE90; width: 25px; height: 25px"></div>
529 pub const LIGHT_GREEN: Color = LIGHT_GREEN;
530 /// <div style="background-color: #D3D3D3; width: 25px; height: 25px"></div>
531 pub const LIGHT_GRAY: Color = LIGHT_GRAY;
532 /// <div style="background-color: #FFB6C1; width: 25px; height: 25px"></div>
533 pub const LIGHT_PINK: Color = LIGHT_PINK;
534 /// <div style="background-color: #FFA07A; width: 25px; height: 25px"></div>
535 pub const LIGHT_SALMON: Color = LIGHT_SALMON;
536 /// <div style="background-color: #20B2AA; width: 25px; height: 25px"></div>
537 pub const LIGHT_SEAGREEN: Color = LIGHT_SEAGREEN;
538 /// <div style="background-color: #87CEFA; width: 25px; height: 25px"></div>
539 pub const LIGHT_SKYBLUE: Color = LIGHT_SKYBLUE;
540 /// <div style="background-color: #778899; width: 25px; height: 25px"></div>
541 pub const LIGHT_SLATEGRAY: Color = LIGHT_SLATEGRAY;
542 /// <div style="background-color: #B0C4DE; width: 25px; height: 25px"></div>
543 pub const LIGHT_STEELBLUE: Color = LIGHT_STEELBLUE;
544 /// <div style="background-color: #FFFFE0; width: 25px; height: 25px"></div>
545 pub const LIGHT_YELLOW: Color = LIGHT_YELLOW;
546 /// <div style="background-color: #00FF00; width: 25px; height: 25px"></div>
547 pub const LIME: Color = LIME;
548 /// <div style="background-color: #32CD32; width: 25px; height: 25px"></div>
549 pub const LIME_GREEN: Color = LIME_GREEN;
550 /// <div style="background-color: #FAF0E6; width: 25px; height: 25px"></div>
551 pub const LINEN: Color = LINEN;
552 /// <div style="background-color: #FF00FF; width: 25px; height: 25px"></div>
553 pub const MAGENTA: Color = MAGENTA;
554 /// <div style="background-color: #800000; width: 25px; height: 25px"></div>
555 pub const MAROON: Color = MAROON;
556 /// <div style="background-color: #66CDAA; width: 25px; height: 25px"></div>
557 pub const MEDIUM_AQUAMARINE: Color = MEDIUM_AQUAMARINE;
558 /// <div style="background-color: #0000CD; width: 25px; height: 25px"></div>
559 pub const MEDIUM_BLUE: Color = MEDIUM_BLUE;
560 /// <div style="background-color: #BA55D3; width: 25px; height: 25px"></div>
561 pub const MEDIUM_ORCHID: Color = MEDIUM_ORCHID;
562 /// <div style="background-color: #9370DB; width: 25px; height: 25px"></div>
563 pub const MEDIUM_PURPLE: Color = MEDIUM_PURPLE;
564 /// <div style="background-color: #3CB371; width: 25px; height: 25px"></div>
565 pub const MEDIUM_SEAGREEN: Color = MEDIUM_SEAGREEN;
566 /// <div style="background-color: #7B68EE; width: 25px; height: 25px"></div>
567 pub const MEDIUM_SLATEBLUE: Color = MEDIUM_SLATEBLUE;
568 /// <div style="background-color: #00FA9A; width: 25px; height: 25px"></div>
569 pub const MEDIUM_SPRINGGREEN: Color = MEDIUM_SPRINGGREEN;
570 /// <div style="background-color: #48D1CC; width: 25px; height: 25px"></div>
571 pub const MEDIUM_TURQUOISE: Color = MEDIUM_TURQUOISE;
572 /// <div style="background-color: #C71585; width: 25px; height: 25px"></div>
573 pub const MEDIUM_VIOLETRED: Color = MEDIUM_VIOLETRED;
574 /// <div style="background-color: #191970; width: 25px; height: 25px"></div>
575 pub const MIDNIGHT_BLUE: Color = MIDNIGHT_BLUE;
576 /// <div style="background-color: #F5FFFA; width: 25px; height: 25px"></div>
577 pub const MINT_CREAM: Color = MINT_CREAM;
578 /// <div style="background-color: #FFE4E1; width: 25px; height: 25px"></div>
579 pub const MISTY_ROSE: Color = MISTY_ROSE;
580 /// <div style="background-color: #FFE4B5; width: 25px; height: 25px"></div>
581 pub const MOCCASIN: Color = MOCCASIN;
582 /// <div style="background-color: #FFDEAD; width: 25px; height: 25px"></div>
583 pub const NAVAJO_WHITE: Color = NAVAJO_WHITE;
584 /// <div style="background-color: #000080; width: 25px; height: 25px"></div>
585 pub const NAVY: Color = NAVY;
586 /// <div style="background-color: #FDF5E6; width: 25px; height: 25px"></div>
587 pub const OLD_LACE: Color = OLD_LACE;
588 /// <div style="background-color: #808000; width: 25px; height: 25px"></div>
589 pub const OLIVE: Color = OLIVE;
590 /// <div style="background-color: #6B8E23; width: 25px; height: 25px"></div>
591 pub const OLIVE_DRAB: Color = OLIVE_DRAB;
592 /// <div style="background-color: #FFA500; width: 25px; height: 25px"></div>
593 pub const ORANGE: Color = ORANGE;
594 /// <div style="background-color: #FF4500; width: 25px; height: 25px"></div>
595 pub const ORANGE_RED: Color = ORANGE_RED;
596 /// <div style="background-color: #DA70D6; width: 25px; height: 25px"></div>
597 pub const ORCHID: Color = ORCHID;
598 /// <div style="background-color: #EEE8AA; width: 25px; height: 25px"></div>
599 pub const PALE_GOLDENROD: Color = PALE_GOLDENROD;
600 /// <div style="background-color: #98FB98; width: 25px; height: 25px"></div>
601 pub const PALE_GREEN: Color = PALE_GREEN;
602 /// <div style="background-color: #AFEEEE; width: 25px; height: 25px"></div>
603 pub const PALE_TURQUOISE: Color = PALE_TURQUOISE;
604 /// <div style="background-color: #DB7093; width: 25px; height: 25px"></div>
605 pub const PALE_VIOLETRED: Color = PALE_VIOLETRED;
606 /// <div style="background-color: #FFEFD5; width: 25px; height: 25px"></div>
607 pub const PAPAYA_WHIP: Color = PAPAYA_WHIP;
608 /// <div style="background-color: #FFDAB9; width: 25px; height: 25px"></div>
609 pub const PEACH_PUFF: Color = PEACH_PUFF;
610 /// <div style="background-color: #CD853F; width: 25px; height: 25px"></div>
611 pub const PERU: Color = PERU;
612 /// <div style="background-color: #FFC0CB; width: 25px; height: 25px"></div>
613 pub const PINK: Color = PINK;
614 /// <div style="background-color: #DDA0DD; width: 25px; height: 25px"></div>
615 pub const PLUM: Color = PLUM;
616 /// <div style="background-color: #B0E0E6; width: 25px; height: 25px"></div>
617 pub const POWDER_BLUE: Color = POWDER_BLUE;
618 /// <div style="background-color: #800080; width: 25px; height: 25px"></div>
619 pub const PURPLE: Color = PURPLE;
620 /// <div style="background-color: #FF0000; width: 25px; height: 25px"></div>
621 pub const RED: Color = RED;
622 /// <div style="background-color: #BC8F8F; width: 25px; height: 25px"></div>
623 pub const ROSY_BROWN: Color = ROSY_BROWN;
624 /// <div style="background-color: #4169E1; width: 25px; height: 25px"></div>
625 pub const ROYAL_BLUE: Color = ROYAL_BLUE;
626 /// <div style="background-color: #8B4513; width: 25px; height: 25px"></div>
627 pub const SADDLE_BROWN: Color = SADDLE_BROWN;
628 /// <div style="background-color: #FA8072; width: 25px; height: 25px"></div>
629 pub const SALMON: Color = SALMON;
630 /// <div style="background-color: #F4A460; width: 25px; height: 25px"></div>
631 pub const SANDY_BROWN: Color = SANDY_BROWN;
632 /// <div style="background-color: #2E8B57; width: 25px; height: 25px"></div>
633 pub const SEA_GREEN: Color = SEA_GREEN;
634 /// <div style="background-color: #FFF5EE; width: 25px; height: 25px"></div>
635 pub const SEA_SHELL: Color = SEA_SHELL;
636 /// <div style="background-color: #A0522D; width: 25px; height: 25px"></div>
637 pub const SIENNA: Color = SIENNA;
638 /// <div style="background-color: #C0C0C0; width: 25px; height: 25px"></div>
639 pub const SILVER: Color = SILVER;
640 /// <div style="background-color: #87CEEB; width: 25px; height: 25px"></div>
641 pub const SKY_BLUE: Color = SKY_BLUE;
642 /// <div style="background-color: #6A5ACD; width: 25px; height: 25px"></div>
643 pub const SLATE_BLUE: Color = SLATE_BLUE;
644 /// <div style="background-color: #708090; width: 25px; height: 25px"></div>
645 pub const SLATE_GRAY: Color = SLATE_GRAY;
646 /// <div style="background-color: #FFFAFA; width: 25px; height: 25px"></div>
647 pub const SNOW: Color = SNOW;
648 /// <div style="background-color: #00FF7F; width: 25px; height: 25px"></div>
649 pub const SPRING_GREEN: Color = SPRING_GREEN;
650 /// <div style="background-color: #4682B4; width: 25px; height: 25px"></div>
651 pub const STEEL_BLUE: Color = STEEL_BLUE;
652 /// <div style="background-color: #D2B48C; width: 25px; height: 25px"></div>
653 pub const TAN: Color = TAN;
654 /// <div style="background-color: #008080; width: 25px; height: 25px"></div>
655 pub const TEAL: Color = TEAL;
656 /// <div style="background-color: #D8BFD8; width: 25px; height: 25px"></div>
657 pub const THISTLE: Color = THISTLE;
658 /// <div style="background-color: #FF6347; width: 25px; height: 25px"></div>
659 pub const TOMATO: Color = TOMATO;
660 /// <div style="background-color: #40E0D0; width: 25px; height: 25px"></div>
661 pub const TURQUOISE: Color = TURQUOISE;
662 /// <div style="background-color: #EE82EE; width: 25px; height: 25px"></div>
663 pub const VIOLET: Color = VIOLET;
664 /// <div style="background-color: #F5DEB3; width: 25px; height: 25px"></div>
665 pub const WHEAT: Color = WHEAT;
666 /// <div style="background-color: #FFFFFF; width: 25px; height: 25px"></div>
667 pub const WHITE: Color = WHITE;
668 /// <div style="background-color: #F5F5F5; width: 25px; height: 25px"></div>
669 pub const WHITE_SMOKE: Color = WHITE_SMOKE;
670 /// <div style="background-color: #FFFF00; width: 25px; height: 25px"></div>
671 pub const YELLOW: Color = YELLOW;
672 /// <div style="background-color: #9ACD32; width: 25px; height: 25px"></div>
673 pub const YELLOW_GREEN: Color = YELLOW_GREEN;
674}
675
676#[cfg(all(test, windows, feature = "d2d"))]
677#[test]
678fn color_d2d_bin_compat() {
679 use std::mem::size_of_val;
680
681 fn ptr_eq<T>(a: &T, b: &T) -> bool {
682 (a as *const T) == (b as *const T)
683 }
684
685 let col = Color::from(0);
686 let d2d = unsafe { &*((&col) as *const _ as *const D2D_COLOR_F) };
687
688 assert!(ptr_eq(&col.r, &d2d.r));
689 assert!(ptr_eq(&col.g, &d2d.g));
690 assert!(ptr_eq(&col.b, &d2d.b));
691 assert!(ptr_eq(&col.a, &d2d.a));
692 assert_eq!(size_of_val(&col), size_of_val(d2d));
693}