use std::{iter, slice};
use super::rgb::RgbColor;
pub type NamedColorIter = iter::Copied<slice::Iter<'static, (&'static str, RgbColor)>>;
pub(super) const NAMED_COLORS: &[(&str, RgbColor)] = &[
("aliceblue", RgbColor::hex(0xF0F8FF)),
("antiquewhite", RgbColor::hex(0xFAEBD7)),
("aqua", RgbColor::hex(0x00FFFF)),
("aquamarine", RgbColor::hex(0x7FFFD4)),
("azure", RgbColor::hex(0xF0FFFF)),
("beige", RgbColor::hex(0xF5F5DC)),
("bisque", RgbColor::hex(0xFFE4C4)),
("black", RgbColor::hex(0x000000)),
("blanchedalmond", RgbColor::hex(0xFFEBCD)),
("blue", RgbColor::hex(0x0000FF)),
("blueviolet", RgbColor::hex(0x8A2BE2)),
("brown", RgbColor::hex(0xA52A2A)),
("burlywood", RgbColor::hex(0xDEB887)),
("cadetblue", RgbColor::hex(0x5F9EA0)),
("chartreuse", RgbColor::hex(0x7FFF00)),
("chocolate", RgbColor::hex(0xD2691E)),
("coral", RgbColor::hex(0xFF7F50)),
("cornflowerblue", RgbColor::hex(0x6495ED)),
("cornsilk", RgbColor::hex(0xFFF8DC)),
("crimson", RgbColor::hex(0xDC143C)),
("cyan", RgbColor::hex(0x00FFFF)),
("darkblue", RgbColor::hex(0x00008B)),
("darkcyan", RgbColor::hex(0x008B8B)),
("darkgoldenrod", RgbColor::hex(0xB8860B)),
("darkgray", RgbColor::hex(0xA9A9A9)),
("darkgrey", RgbColor::hex(0xA9A9A9)),
("darkgreen", RgbColor::hex(0x006400)),
("darkkhaki", RgbColor::hex(0xBDB76B)),
("darkmagenta", RgbColor::hex(0x8B008B)),
("darkolivegreen", RgbColor::hex(0x556B2F)),
("darkorange", RgbColor::hex(0xFF8C00)),
("darkorchid", RgbColor::hex(0x9932CC)),
("darkred", RgbColor::hex(0x8B0000)),
("darksalmon", RgbColor::hex(0xE9967A)),
("darkseagreen", RgbColor::hex(0x8FBC8F)),
("darkslateblue", RgbColor::hex(0x483D8B)),
("darkslategray", RgbColor::hex(0x2F4F4F)),
("darkslategrey", RgbColor::hex(0x2F4F4F)),
("darkturquoise", RgbColor::hex(0x00CED1)),
("darkviolet", RgbColor::hex(0x9400D3)),
("deeppink", RgbColor::hex(0xFF1493)),
("deepskyblue", RgbColor::hex(0x00BFFF)),
("dimgray", RgbColor::hex(0x696969)),
("dimgrey", RgbColor::hex(0x696969)),
("dodgerblue", RgbColor::hex(0x1E90FF)),
("firebrick", RgbColor::hex(0xB22222)),
("floralwhite", RgbColor::hex(0xFFFAF0)),
("forestgreen", RgbColor::hex(0x228B22)),
("fuchsia", RgbColor::hex(0xFF00FF)),
("gainsboro", RgbColor::hex(0xDCDCDC)),
("ghostwhite", RgbColor::hex(0xF8F8FF)),
("gold", RgbColor::hex(0xFFD700)),
("goldenrod", RgbColor::hex(0xDAA520)),
("gray", RgbColor::hex(0x808080)),
("grey", RgbColor::hex(0x808080)),
("green", RgbColor::hex(0x008000)),
("greenyellow", RgbColor::hex(0xADFF2F)),
("honeydew", RgbColor::hex(0xF0FFF0)),
("hotpink", RgbColor::hex(0xFF69B4)),
("indianred", RgbColor::hex(0xCD5C5C)),
("indigo", RgbColor::hex(0x4B0082)),
("ivory", RgbColor::hex(0xFFFFF0)),
("khaki", RgbColor::hex(0xF0E68C)),
("lavender", RgbColor::hex(0xE6E6FA)),
("lavenderblush", RgbColor::hex(0xFFF0F5)),
("lawngreen", RgbColor::hex(0x7CFC00)),
("lemonchiffon", RgbColor::hex(0xFFFACD)),
("lightblue", RgbColor::hex(0xADD8E6)),
("lightcoral", RgbColor::hex(0xF08080)),
("lightcyan", RgbColor::hex(0xE0FFFF)),
("lightgoldenrodyellow", RgbColor::hex(0xFAFAD2)),
("lightgreen", RgbColor::hex(0x90EE90)),
("lightgrey", RgbColor::hex(0xD3D3D3)),
("lightgray", RgbColor::hex(0xD3D3D3)),
("lightpink", RgbColor::hex(0xFFB6C1)),
("lightsalmon", RgbColor::hex(0xFFA07A)),
("lightseagreen", RgbColor::hex(0x20B2AA)),
("lightskyblue", RgbColor::hex(0x87CEFA)),
("lightslategray", RgbColor::hex(0x778899)),
("lightslategrey", RgbColor::hex(0x778899)),
("lightsteelblue", RgbColor::hex(0xB0C4DE)),
("lightyellow", RgbColor::hex(0xFFFFE0)),
("lime", RgbColor::hex(0x00FF00)),
("limegreen", RgbColor::hex(0x32CD32)),
("linen", RgbColor::hex(0xFAF0E6)),
("magenta", RgbColor::hex(0xFF00FF)),
("maroon", RgbColor::hex(0x800000)),
("mediumaquamarine", RgbColor::hex(0x66CDAA)),
("mediumblue", RgbColor::hex(0x0000CD)),
("mediumorchid", RgbColor::hex(0xBA55D3)),
("mediumpurple", RgbColor::hex(0x9370DB)),
("mediumseagreen", RgbColor::hex(0x3CB371)),
("mediumslateblue", RgbColor::hex(0x7B68EE)),
("mediumspringgreen", RgbColor::hex(0x00FA9A)),
("mediumturquoise", RgbColor::hex(0x48D1CC)),
("mediumvioletred", RgbColor::hex(0xC71585)),
("midnightblue", RgbColor::hex(0x191970)),
("mintcream", RgbColor::hex(0xF5FFFA)),
("mistyrose", RgbColor::hex(0xFFE4E1)),
("moccasin", RgbColor::hex(0xFFE4B5)),
("navajowhite", RgbColor::hex(0xFFDEAD)),
("navy", RgbColor::hex(0x000080)),
("oldlace", RgbColor::hex(0xFDF5E6)),
("olive", RgbColor::hex(0x808000)),
("olivedrab", RgbColor::hex(0x6B8E23)),
("orange", RgbColor::hex(0xFFA500)),
("orangered", RgbColor::hex(0xFF4500)),
("orchid", RgbColor::hex(0xDA70D6)),
("palegoldenrod", RgbColor::hex(0xEEE8AA)),
("palegreen", RgbColor::hex(0x98FB98)),
("paleturquoise", RgbColor::hex(0xAFEEEE)),
("palevioletred", RgbColor::hex(0xDB7093)),
("papayawhip", RgbColor::hex(0xFFEFD5)),
("peachpuff", RgbColor::hex(0xFFDAB9)),
("peru", RgbColor::hex(0xCD853F)),
("pink", RgbColor::hex(0xFFC0CB)),
("plum", RgbColor::hex(0xDDA0DD)),
("powderblue", RgbColor::hex(0xB0E0E6)),
("purple", RgbColor::hex(0x800080)),
("rebeccapurple", RgbColor::hex(0x663399)),
("red", RgbColor::hex(0xFF0000)),
("rosybrown", RgbColor::hex(0xBC8F8F)),
("royalblue", RgbColor::hex(0x4169E1)),
("saddlebrown", RgbColor::hex(0x8B4513)),
("salmon", RgbColor::hex(0xFA8072)),
("sandybrown", RgbColor::hex(0xF4A460)),
("seagreen", RgbColor::hex(0x2E8B57)),
("seashell", RgbColor::hex(0xFFF5EE)),
("sienna", RgbColor::hex(0xA0522D)),
("silver", RgbColor::hex(0xC0C0C0)),
("skyblue", RgbColor::hex(0x87CEEB)),
("slateblue", RgbColor::hex(0x6A5ACD)),
("slategray", RgbColor::hex(0x708090)),
("slategrey", RgbColor::hex(0x708090)),
("snow", RgbColor::hex(0xFFFAFA)),
("springgreen", RgbColor::hex(0x00FF7F)),
("steelblue", RgbColor::hex(0x4682B4)),
("tan", RgbColor::hex(0xD2B48C)),
("teal", RgbColor::hex(0x008080)),
("thistle", RgbColor::hex(0xD8BFD8)),
("tomato", RgbColor::hex(0xFF6347)),
("turquoise", RgbColor::hex(0x40E0D0)),
("violet", RgbColor::hex(0xEE82EE)),
("wheat", RgbColor::hex(0xF5DEB3)),
("white", RgbColor::hex(0xFFFFFF)),
("whitesmoke", RgbColor::hex(0xF5F5F5)),
("yellow", RgbColor::hex(0xFFFF00)),
("yellowgreen", RgbColor::hex(0x9ACD32)),
];
#[inline]
pub(super) const fn get_named_color(name: &[u8]) -> Option<RgbColor> {
match name {
b"aliceblue" => Some(RgbColor::hex(0xF0F8FF)),
b"antiquewhite" => Some(RgbColor::hex(0xFAEBD7)),
b"aqua" | b"cyan" => Some(RgbColor::hex(0x00FFFF)),
b"aquamarine" => Some(RgbColor::hex(0x7FFFD4)),
b"azure" => Some(RgbColor::hex(0xF0FFFF)),
b"beige" => Some(RgbColor::hex(0xF5F5DC)),
b"bisque" => Some(RgbColor::hex(0xFFE4C4)),
b"black" => Some(RgbColor::hex(0x000000)),
b"blanchedalmond" => Some(RgbColor::hex(0xFFEBCD)),
b"blue" => Some(RgbColor::hex(0x0000FF)),
b"blueviolet" => Some(RgbColor::hex(0x8A2BE2)),
b"brown" => Some(RgbColor::hex(0xA52A2A)),
b"burlywood" => Some(RgbColor::hex(0xDEB887)),
b"cadetblue" => Some(RgbColor::hex(0x5F9EA0)),
b"chartreuse" => Some(RgbColor::hex(0x7FFF00)),
b"chocolate" => Some(RgbColor::hex(0xD2691E)),
b"coral" => Some(RgbColor::hex(0xFF7F50)),
b"cornflowerblue" => Some(RgbColor::hex(0x6495ED)),
b"cornsilk" => Some(RgbColor::hex(0xFFF8DC)),
b"crimson" => Some(RgbColor::hex(0xDC143C)),
b"darkblue" => Some(RgbColor::hex(0x00008B)),
b"darkcyan" => Some(RgbColor::hex(0x008B8B)),
b"darkgoldenrod" => Some(RgbColor::hex(0xB8860B)),
b"darkgray" | b"darkgrey" => Some(RgbColor::hex(0xA9A9A9)),
b"darkgreen" => Some(RgbColor::hex(0x006400)),
b"darkkhaki" => Some(RgbColor::hex(0xBDB76B)),
b"darkmagenta" => Some(RgbColor::hex(0x8B008B)),
b"darkolivegreen" => Some(RgbColor::hex(0x556B2F)),
b"darkorange" => Some(RgbColor::hex(0xFF8C00)),
b"darkorchid" => Some(RgbColor::hex(0x9932CC)),
b"darkred" => Some(RgbColor::hex(0x8B0000)),
b"darksalmon" => Some(RgbColor::hex(0xE9967A)),
b"darkseagreen" => Some(RgbColor::hex(0x8FBC8F)),
b"darkslateblue" => Some(RgbColor::hex(0x483D8B)),
b"darkslategray" | b"darkslategrey" => Some(RgbColor::hex(0x2F4F4F)),
b"darkturquoise" => Some(RgbColor::hex(0x00CED1)),
b"darkviolet" => Some(RgbColor::hex(0x9400D3)),
b"deeppink" => Some(RgbColor::hex(0xFF1493)),
b"deepskyblue" => Some(RgbColor::hex(0x00BFFF)),
b"dimgray" | b"dimgrey" => Some(RgbColor::hex(0x696969)),
b"dodgerblue" => Some(RgbColor::hex(0x1E90FF)),
b"firebrick" => Some(RgbColor::hex(0xB22222)),
b"floralwhite" => Some(RgbColor::hex(0xFFFAF0)),
b"forestgreen" => Some(RgbColor::hex(0x228B22)),
b"fuchsia" | b"magenta" => Some(RgbColor::hex(0xFF00FF)),
b"gainsboro" => Some(RgbColor::hex(0xDCDCDC)),
b"ghostwhite" => Some(RgbColor::hex(0xF8F8FF)),
b"gold" => Some(RgbColor::hex(0xFFD700)),
b"goldenrod" => Some(RgbColor::hex(0xDAA520)),
b"gray" | b"grey" => Some(RgbColor::hex(0x808080)),
b"green" => Some(RgbColor::hex(0x008000)),
b"greenyellow" => Some(RgbColor::hex(0xADFF2F)),
b"honeydew" => Some(RgbColor::hex(0xF0FFF0)),
b"hotpink" => Some(RgbColor::hex(0xFF69B4)),
b"indianred" => Some(RgbColor::hex(0xCD5C5C)),
b"indigo" => Some(RgbColor::hex(0x4B0082)),
b"ivory" => Some(RgbColor::hex(0xFFFFF0)),
b"khaki" => Some(RgbColor::hex(0xF0E68C)),
b"lavender" => Some(RgbColor::hex(0xE6E6FA)),
b"lavenderblush" => Some(RgbColor::hex(0xFFF0F5)),
b"lawngreen" => Some(RgbColor::hex(0x7CFC00)),
b"lemonchiffon" => Some(RgbColor::hex(0xFFFACD)),
b"lightblue" => Some(RgbColor::hex(0xADD8E6)),
b"lightcoral" => Some(RgbColor::hex(0xF08080)),
b"lightcyan" => Some(RgbColor::hex(0xE0FFFF)),
b"lightgoldenrodyellow" => Some(RgbColor::hex(0xFAFAD2)),
b"lightgreen" => Some(RgbColor::hex(0x90EE90)),
b"lightgrey" | b"lightgray" => Some(RgbColor::hex(0xD3D3D3)),
b"lightpink" => Some(RgbColor::hex(0xFFB6C1)),
b"lightsalmon" => Some(RgbColor::hex(0xFFA07A)),
b"lightseagreen" => Some(RgbColor::hex(0x20B2AA)),
b"lightskyblue" => Some(RgbColor::hex(0x87CEFA)),
b"lightslategray" | b"lightslategrey" => Some(RgbColor::hex(0x778899)),
b"lightsteelblue" => Some(RgbColor::hex(0xB0C4DE)),
b"lightyellow" => Some(RgbColor::hex(0xFFFFE0)),
b"lime" => Some(RgbColor::hex(0x00FF00)),
b"limegreen" => Some(RgbColor::hex(0x32CD32)),
b"linen" => Some(RgbColor::hex(0xFAF0E6)),
b"maroon" => Some(RgbColor::hex(0x800000)),
b"mediumaquamarine" => Some(RgbColor::hex(0x66CDAA)),
b"mediumblue" => Some(RgbColor::hex(0x0000CD)),
b"mediumorchid" => Some(RgbColor::hex(0xBA55D3)),
b"mediumpurple" => Some(RgbColor::hex(0x9370DB)),
b"mediumseagreen" => Some(RgbColor::hex(0x3CB371)),
b"mediumslateblue" => Some(RgbColor::hex(0x7B68EE)),
b"mediumspringgreen" => Some(RgbColor::hex(0x00FA9A)),
b"mediumturquoise" => Some(RgbColor::hex(0x48D1CC)),
b"mediumvioletred" => Some(RgbColor::hex(0xC71585)),
b"midnightblue" => Some(RgbColor::hex(0x191970)),
b"mintcream" => Some(RgbColor::hex(0xF5FFFA)),
b"mistyrose" => Some(RgbColor::hex(0xFFE4E1)),
b"moccasin" => Some(RgbColor::hex(0xFFE4B5)),
b"navajowhite" => Some(RgbColor::hex(0xFFDEAD)),
b"navy" => Some(RgbColor::hex(0x000080)),
b"oldlace" => Some(RgbColor::hex(0xFDF5E6)),
b"olive" => Some(RgbColor::hex(0x808000)),
b"olivedrab" => Some(RgbColor::hex(0x6B8E23)),
b"orange" => Some(RgbColor::hex(0xFFA500)),
b"orangered" => Some(RgbColor::hex(0xFF4500)),
b"orchid" => Some(RgbColor::hex(0xDA70D6)),
b"palegoldenrod" => Some(RgbColor::hex(0xEEE8AA)),
b"palegreen" => Some(RgbColor::hex(0x98FB98)),
b"paleturquoise" => Some(RgbColor::hex(0xAFEEEE)),
b"palevioletred" => Some(RgbColor::hex(0xDB7093)),
b"papayawhip" => Some(RgbColor::hex(0xFFEFD5)),
b"peachpuff" => Some(RgbColor::hex(0xFFDAB9)),
b"peru" => Some(RgbColor::hex(0xCD853F)),
b"pink" => Some(RgbColor::hex(0xFFC0CB)),
b"plum" => Some(RgbColor::hex(0xDDA0DD)),
b"powderblue" => Some(RgbColor::hex(0xB0E0E6)),
b"purple" => Some(RgbColor::hex(0x800080)),
b"rebeccapurple" => Some(RgbColor::hex(0x663399)),
b"red" => Some(RgbColor::hex(0xFF0000)),
b"rosybrown" => Some(RgbColor::hex(0xBC8F8F)),
b"royalblue" => Some(RgbColor::hex(0x4169E1)),
b"saddlebrown" => Some(RgbColor::hex(0x8B4513)),
b"salmon" => Some(RgbColor::hex(0xFA8072)),
b"sandybrown" => Some(RgbColor::hex(0xF4A460)),
b"seagreen" => Some(RgbColor::hex(0x2E8B57)),
b"seashell" => Some(RgbColor::hex(0xFFF5EE)),
b"sienna" => Some(RgbColor::hex(0xA0522D)),
b"silver" => Some(RgbColor::hex(0xC0C0C0)),
b"skyblue" => Some(RgbColor::hex(0x87CEEB)),
b"slateblue" => Some(RgbColor::hex(0x6A5ACD)),
b"slategray" | b"slategrey" => Some(RgbColor::hex(0x708090)),
b"snow" => Some(RgbColor::hex(0xFFFAFA)),
b"springgreen" => Some(RgbColor::hex(0x00FF7F)),
b"steelblue" => Some(RgbColor::hex(0x4682B4)),
b"tan" => Some(RgbColor::hex(0xD2B48C)),
b"teal" => Some(RgbColor::hex(0x008080)),
b"thistle" => Some(RgbColor::hex(0xD8BFD8)),
b"tomato" => Some(RgbColor::hex(0xFF6347)),
b"turquoise" => Some(RgbColor::hex(0x40E0D0)),
b"violet" => Some(RgbColor::hex(0xEE82EE)),
b"wheat" => Some(RgbColor::hex(0xF5DEB3)),
b"white" => Some(RgbColor::hex(0xFFFFFF)),
b"whitesmoke" => Some(RgbColor::hex(0xF5F5F5)),
b"yellow" => Some(RgbColor::hex(0xFFFF00)),
b"yellowgreen" => Some(RgbColor::hex(0x9ACD32)),
_ => None,
}
}