use crossterm::style::{Color, ResetColor, SetForegroundColor, Stylize};
pub const REDACTED_VALUE: &str = "[redacted]";
pub struct Colors;
impl Colors {
pub const STATUS: Color = Color::Magenta;
pub const ERROR: Color = Color::Red;
pub const TRANSACTION: Color = Color::Cyan;
pub const WRITE_MODE: Color = Color::Green;
pub const WARNING: Color = Color::Yellow;
pub const PROGRESS: Color = Color::Magenta;
pub const REDACTED: Color = Color::Yellow;
}
pub fn style_status(text: &str, use_colours: bool) -> String {
if use_colours {
format!("{}", text.with(Colors::STATUS).dim())
} else {
text.to_string()
}
}
pub fn style_warning(text: &str, use_colours: bool) -> String {
if use_colours {
format!("{}", text.with(Colors::WARNING).bold())
} else {
text.to_string()
}
}
pub fn style_progress(text: &str, use_colours: bool) -> String {
if use_colours {
format!("{}", text.with(Colors::PROGRESS).dim())
} else {
text.to_string()
}
}
pub fn prompt_error_code() -> String {
format!("{}", SetForegroundColor(Colors::ERROR))
}
pub fn prompt_transaction_code() -> String {
format!("{}", SetForegroundColor(Colors::TRANSACTION))
}
pub fn prompt_write_mode_code() -> String {
format!("{}", SetForegroundColor(Colors::WRITE_MODE))
}
pub fn reset_code() -> String {
format!("{}", ResetColor)
}
pub fn to_comfy_color(color: Color) -> comfy_table::Color {
match color {
Color::Black => comfy_table::Color::Black,
Color::DarkGrey => comfy_table::Color::DarkGrey,
Color::Red => comfy_table::Color::Red,
Color::DarkRed => comfy_table::Color::DarkRed,
Color::Green => comfy_table::Color::Green,
Color::DarkGreen => comfy_table::Color::DarkGreen,
Color::Yellow => comfy_table::Color::Yellow,
Color::DarkYellow => comfy_table::Color::DarkYellow,
Color::Blue => comfy_table::Color::Blue,
Color::DarkBlue => comfy_table::Color::DarkBlue,
Color::Magenta => comfy_table::Color::Magenta,
Color::DarkMagenta => comfy_table::Color::DarkMagenta,
Color::Cyan => comfy_table::Color::Cyan,
Color::DarkCyan => comfy_table::Color::DarkCyan,
Color::White => comfy_table::Color::White,
Color::Grey => comfy_table::Color::Grey,
Color::Rgb { r, g, b } => comfy_table::Color::Rgb { r, g, b },
Color::AnsiValue(v) => comfy_table::Color::AnsiValue(v),
_ => comfy_table::Color::Reset,
}
}
pub const CLEAR_LINE: &str = "\r\x1b[K";