From f6421f6aaaf6f2c7315d16fee37848b8704c6398 Mon Sep 17 00:00:00 2001 From: RGBCube Date: Sun, 11 Dec 2022 17:59:00 +0300 Subject: [PATCH] Simplify BasicColor --- src/color.v | 75 +++---------------------------------------------- src/constants.v | 50 ++++++++++++++++----------------- 2 files changed, 29 insertions(+), 96 deletions(-) diff --git a/src/color.v b/src/color.v index 0f7c7aa..5df90cd 100644 --- a/src/color.v +++ b/src/color.v @@ -55,75 +55,8 @@ fn (c TrueColor) render_bg(str string) string { } } -enum BasicColor { - black - bright_black - red - bright_red - green - bright_green - yellow - bright_yellow - blue - bright_blue - magenta - bright_magenta - cyan - bright_cyan - white - bright_white -} - -fn (c BasicColor) render(str string) string { - return if no_color { - str - } else { - func := match c { - .black { term.black } - .red { term.red } - .green { term.green } - .yellow { term.yellow } - .blue { term.blue } - .magenta { term.magenta } - .cyan { term.cyan } - .white { term.white } - .bright_black { term.bright_black } - .bright_red { term.bright_red } - .bright_green { term.bright_green } - .bright_yellow { term.bright_yellow } - .bright_blue { term.bright_blue } - .bright_magenta { term.bright_magenta } - .bright_cyan { term.bright_cyan } - .bright_white { term.bright_white } - } - - func(str) - } -} - -fn (c BasicColor) render_bg(str string) string { - return if no_color { - str - } else { - func := match c { - .black { term.bg_black } - .red { term.bg_red } - .green { term.bg_green } - .yellow { term.bg_yellow } - .blue { term.bg_blue } - .magenta { term.bg_magenta } - .cyan { term.bg_cyan } - .white { term.bg_white } - .bright_black { term.bright_bg_black } - .bright_red { term.bright_bg_red } - .bright_green { term.bright_bg_green } - .bright_yellow { term.bright_bg_yellow } - .bright_blue { term.bright_bg_blue } - .bright_magenta { term.bright_bg_magenta } - .bright_cyan { term.bright_bg_cyan } - .bright_white { term.bright_bg_white } - } - - func(str) - } +struct BasicColor { + pub: + render fn (string) string + render_bg fn (string) string } diff --git a/src/constants.v b/src/constants.v index 8c76a9b..f9759ed 100644 --- a/src/constants.v +++ b/src/constants.v @@ -5,32 +5,32 @@ import term pub const ( // Styles reset = Style(StyleImpl.reset) - bold = Style(StyleImpl.bold) - dim = Style(StyleImpl.dim) - italic = Style(StyleImpl.italic) - underline = Style(StyleImpl.underline) - slow_blink = Style(StyleImpl.slow_blink) - rapid_blink = Style(StyleImpl.rapid_blink) - inverse = Style(StyleImpl.inverse) - hidden = Style(StyleImpl.hidden) - strikethrough = Style(StyleImpl.strikethrough) + bold = Style(StyleImpl.bold) + dim = Style(StyleImpl.dim) + italic = Style(StyleImpl.italic) + underline = Style(StyleImpl.underline) + slow_blink = Style(StyleImpl.slow_blink) + rapid_blink = Style(StyleImpl.rapid_blink) + inverse = Style(StyleImpl.inverse) + hidden = Style(StyleImpl.hidden) + strikethrough = Style(StyleImpl.strikethrough) // Colors - black = Color(BasicColor.black) - bright_black = Color(BasicColor.bright_black) - red = Color(BasicColor.red) - bright_red = Color(BasicColor.bright_red) - green = Color(BasicColor.green) - bright_green = Color(BasicColor.bright_green) - yellow = Color(BasicColor.yellow) - bright_yellow = Color(BasicColor.bright_yellow) - blue = Color(BasicColor.blue) - bright_blue = Color(BasicColor.bright_blue) - magenta = Color(BasicColor.magenta) - bright_magenta = Color(BasicColor.bright_magenta) - cyan = Color(BasicColor.cyan) - bright_cyan = Color(BasicColor.bright_cyan) - white = Color(BasicColor.white) - bright_white = Color(BasicColor.bright_white) + black = Color(BasicColor{term.black, term.bg_black}) + bright_black = Color(BasicColor{term.bright_black, term.bright_bg_black}) + red = Color(BasicColor{term.red, term.bg_red}) + bright_red = Color(BasicColor{term.bright_red, term.bright_bg_red}) + green = Color(BasicColor{term.green, term.bg_green}) + bright_green = Color(BasicColor{term.bright_green, term.bright_bg_green}) + yellow = Color(BasicColor{term.yellow, term.bg_yellow}) + bright_yellow = Color(BasicColor{term.bright_yellow, term.bright_bg_yellow}) + blue = Color(BasicColor{term.blue, term.bg_blue}) + bright_blue = Color(BasicColor{term.bright_blue, term.bright_bg_blue}) + magenta = Color(BasicColor{term.magenta, term.bg_magenta}) + bright_magenta = Color(BasicColor{term.bright_magenta, term.bright_bg_magenta}) + cyan = Color(BasicColor{term.cyan, term.bg_cyan}) + bright_cyan = Color(BasicColor{term.bright_cyan, term.bright_bg_cyan}) + white = Color(BasicColor{term.white, term.bg_white}) + bright_white = Color(BasicColor{term.bright_white, term.bright_bg_white}) ) const no_color = !term.can_show_color_on_stdout()