use super::EnumColor;
use crate::{
ColorFormattable,
define_xterm_colors
};
define_xterm_colors! {
UserBlack = (0, 0, 0),
UserRed = (128, 0, 0),
UserGreen = (0, 128, 0),
UserYellow = (128, 128, 0),
UserBlue = (0, 0, 128),
UserMagenta = (128, 0, 128),
UserCyan = (0, 128, 128),
UserWhite = (192, 192, 192),
UserBrightBlack = (128, 128, 128),
UserBrightRed = (255, 0, 0),
UserBrightGreen = (0, 255, 0),
UserBrightYellow = (255, 255, 0),
UserBrightBlue = (0, 0, 255),
UserBrightMagenta = (255, 0, 255),
UserBrightCyan = (0, 255, 255),
UserBrightWhite = (255, 255, 255),
Black = (0, 0, 0),
StratosBlue = (0, 0, 95),
NavyBlue = (0, 0, 135),
MidnightBlue = (0, 0, 175),
DarkBlue = (0, 0, 215),
Blue = (0, 0, 255),
CamaroneGreen = (0, 95, 0),
BlueStone = (0, 95, 95),
OrientBlue = (0, 95, 135),
EndeavourBlue = (0, 95, 175),
ScienceBlue = (0, 95, 215),
BlueRibbon = (0, 95, 255),
JapaneseLaurel = (0, 135, 0),
DeepSeaGreen = (0, 135, 95),
Teal = (0, 135, 135),
DeepCerulean = (0, 135, 175),
LochmaraBlue = (0, 135, 215),
AzureRadiance = (0, 135, 255),
LightJapaneseLaurel = (0, 175, 0),
Jade = (0, 175, 95),
PersianGreen = (0, 175, 135),
BondiBlue = (0, 175, 175),
Cerulean = (0, 175, 215),
LightAzureRadiance = (0, 175, 255),
DarkGreen = (0, 215, 0),
Malachite = (0, 215, 95),
CaribbeanGreen = (0, 215, 135),
LightCaribbeanGreen = (0, 215, 175),
RobinEggBlue = (0, 215, 215),
Aqua = (0, 215, 255),
Green = (0, 255, 0),
DarkSpringGreen = (0, 255, 95),
SpringGreen = (0, 255, 135),
LightSpringGreen = (0, 255, 175),
BrightTurquoise = (0, 255, 215),
Cyan = (0, 255, 255),
Rosewood = (95, 0, 0),
PompadourMagenta = (95, 0, 95),
PigmentIndigo = (95, 0, 135),
DarkPurple = (95, 0, 175),
ElectricIndigo = (95, 0, 215),
ElectricPurple = (95, 0, 255),
VerdunGreen = (95, 95, 0),
ScorpionOlive = (95, 95, 95),
Lilac = (95, 95, 135),
ScampiIndigo = (95, 95, 175),
Indigo = (95, 95, 215),
DarkCornflowerBlue = (95, 95, 255),
DarkLimeade = (95, 135, 0),
GladeGreen = (95, 135, 95),
JuniperGreen = (95, 135, 135),
HippieBlue = (95, 135, 175),
HavelockBlue = (95, 135, 215),
CornflowerBlue = (95, 135, 255),
Limeade = (95, 175, 0),
FernGreen = (95, 175, 95),
SilverTree = (95, 175, 135),
Tradewind = (95, 175, 175),
ShakespeareBlue = (95, 175, 215),
DarkMalibuBlue = (95, 175, 255),
DarkBrightGreen = (95, 215, 0),
DarkPastelGreen = (95, 215, 95),
PastelGreen = (95, 215, 135),
DownyTeal = (95, 215, 175),
Viking = (95, 215, 215),
MalibuBlue = (95, 215, 255),
BrightGreen = (95, 255, 0),
DarkScreaminGreen = (95, 255, 95),
ScreaminGreen = (95, 255, 135),
DarkAquamarine = (95, 255, 175),
Aquamarine = (95, 255, 215),
LightAquamarine = (95, 255, 255),
Maroon = (135, 0, 0),
DarkFreshEggplant = (135, 0, 95),
LightFreshEggplant = (135, 0, 135),
Purple = (135, 0, 175),
ElectricViolet = (135, 0, 215),
LightElectricViolet = (135, 0, 255),
Brown = (135, 95, 0),
CopperRose = (135, 95, 95),
StrikemasterPurple = (135, 95, 135),
DelugePurple = (135, 95, 175),
DarkMediumPurple = (135, 95, 215),
DarkHeliotropePurple = (135, 95, 255),
Olive = (135, 135, 0),
ClayCreekOlive = (135, 135, 95),
DarkGray = (135, 135, 135),
WildBlueYonder = (135, 135, 175),
ChetwodeBlue = (135, 135, 215),
SlateBlue = (135, 135, 255),
LightLimeade = (135, 175, 0),
ChelseaCucumber = (135, 175, 95),
BayLeaf = (135, 175, 135),
GulfStream = (135, 175, 175),
PoloBlue = (135, 175, 215),
LightMalibuBlue = (135, 175, 255),
Pistachio = (135, 215, 0),
LightPastelGreen = (135, 215, 95),
DarkFeijoaGreen = (135, 215, 135),
VistaBlue = (135, 215, 175),
Bermuda = (135, 215, 215),
DarkAnakiwaBlue = (135, 215, 255),
ChartreuseGreen = (135, 255, 0),
LightScreaminGreen = (135, 255, 95),
DarkMintGreen = (135, 255, 135),
MintGreen = (135, 255, 175),
LighterAquamarine = (135, 255, 215),
AnakiwaBlue = (135, 255, 255),
BrightRed = (175, 0, 0),
DarkFlirt = (175, 0, 95),
Flirt = (175, 0, 135),
LightFlirt = (175, 0, 175),
DarkViolet = (175, 0, 215),
BrightElectricViolet = (175, 0, 255),
RoseofSharonOrange = (175, 95, 0),
MatrixPink = (175, 95, 95),
TapestryPink = (175, 95, 135),
FuchsiaPink = (175, 95, 175),
MediumPurple = (175, 95, 215),
Heliotrope = (175, 95, 255),
PirateGold = (175, 135, 0),
MuesliOrange = (175, 135, 95),
PharlapPink = (175, 135, 135),
Bouquet = (175, 135, 175),
Lavender = (175, 135, 215),
LightHeliotrope = (175, 135, 255),
BuddhaGold = (175, 175, 0),
OliveGreen = (175, 175, 95),
HillaryOlive = (175, 175, 135),
SilverChalice = (175, 175, 175),
WistfulLilac = (175, 175, 215),
MelroseLilac = (175, 175, 255),
RioGrandeGreen = (175, 215, 0),
ConiferGreen = (175, 215, 95),
Feijoa = (175, 215, 135),
PixieGreen = (175, 215, 175),
JungleMist = (175, 215, 215),
LightAnakiwaBlue = (175, 215, 255),
Lime = (175, 255, 0),
GreenYellow = (175, 255, 95),
LightMintGreen = (175, 255, 135),
Celadon = (175, 255, 175),
AeroBlue = (175, 255, 215),
FrenchPassLightBlue = (175, 255, 255),
GuardsmanRed = (215, 0, 0),
RazzmatazzCerise = (215, 0, 95),
MediumVioletRed = (215, 0, 135),
HollywoodCerise = (215, 0, 175),
DarkPurplePizzazz = (215, 0, 215),
BrighterElectricViolet = (215, 0, 255),
TennOrange = (215, 95, 0),
RomanOrange = (215, 95, 95),
CranberryPink = (215, 95, 135),
HopbushPink = (215, 95, 175),
Orchid = (215, 95, 215),
LighterHeliotrope = (215, 95, 255),
MangoTango = (215, 135, 0),
Copperfield = (215, 135, 95),
SeaPink = (215, 135, 135),
CanCanPink = (215, 135, 175),
LightOrchid = (215, 135, 215),
BrightHeliotrope = (215, 135, 255),
DarkCorn = (215, 175, 0),
DarkTachaOrange = (215, 175, 95),
TanBeige = (215, 175, 135),
ClamShell = (215, 175, 175),
ThistlePink = (215, 175, 215),
Mauve = (215, 175, 255),
Corn = (215, 215, 0),
TachaOrange = (215, 215, 95),
DecoOrange = (215, 215, 135),
PaleGoldenrod = (215, 215, 175),
AltoBeige = (215, 215, 215),
FogPink = (215, 215, 255),
ChartreuseYellow = (215, 255, 0),
Canary = (215, 255, 95),
Honeysuckle = (215, 255, 135),
ReefPaleYellow = (215, 255, 175),
SnowyMint = (215, 255, 215),
OysterBay = (215, 255, 255),
Red = (255, 0, 0),
DarkRose = (255, 0, 95),
Rose = (255, 0, 135),
LightHollywoodCerise = (255, 0, 175),
PurplePizzazz = (255, 0, 215),
Fuchsia = (255, 0, 255),
BlazeOrange = (255, 95, 0),
BittersweetOrange = (255, 95, 95),
WildWatermelon = (255, 95, 135),
DarkHotPink = (255, 95, 175),
HotPink = (255, 95, 215),
PinkFlamingo = (255, 95, 255),
FlushOrange = (255, 135, 0),
Salmon = (255, 135, 95),
VividTangerine = (255, 135, 135),
PinkSalmon = (255, 135, 175),
DarkLavenderRose = (255, 135, 215),
BlushPink = (255, 135, 255),
YellowSea = (255, 175, 0),
TexasRose = (255, 175, 95),
Tacao = (255, 175, 135),
Sundown = (255, 175, 175),
CottonCandy = (255, 175, 215),
LavenderRose = (255, 175, 255),
Gold = (255, 215, 0),
Dandelion = (255, 215, 95),
GrandisCaramel = (255, 215, 135),
Caramel = (255, 215, 175),
CosmosSalmon = (255, 215, 215),
PinkLace = (255, 215, 255),
Yellow = (255, 255, 0),
LaserLemon = (255, 255, 95),
DollyYellow = (255, 255, 135),
PortafinoYellow = (255, 255, 175),
Cumulus = (255, 255, 215),
White = (255, 255, 255),
DarkCodGray = (8, 8, 8),
CodGray = (18, 18, 18),
LightCodGray = (28, 28, 28),
DarkMineShaft = (38, 38, 38),
MineShaft = (48, 48, 48),
LightMineShaft = (58, 58, 58),
DarkTundora = (68, 68, 68),
Tundora = (78, 78, 78),
ScorpionGray = (88, 88, 88),
DarkDoveGray = (98, 98, 98),
DoveGray = (108, 108, 108),
Boulder = (118, 118, 118),
Gray = (128, 128, 128),
LightGray = (138, 138, 138),
DustyGray = (148, 148, 148),
NobelGray = (158, 158, 158),
DarkSilverChalice = (168, 168, 168),
LightSilverChalice = (178, 178, 178),
DarkSilver = (188, 188, 188),
Silver = (198, 198, 198),
DarkAlto = (208, 208, 208),
Alto = (218, 218, 218),
Mercury = (228, 228, 228),
GalleryGray = (238, 238, 238)
}
impl ColorFormattable for XtermColor {
fn format(&self, is_background: bool) -> String {
let (r, g, b): (u8, u8, u8) = self.rgb();
if is_background {
format!("\x1B[48;2;{};{};{}m", r, g, b)
} else {
format!("\x1B[38;2;{};{};{}m", r, g, b)
}
}
}
impl EnumColor for XtermColor {
fn from_name(name: &str) -> Option<Self> {
Self::from_str(name).ok()
}
}