pub struct Colors;
impl Colors {
pub const RESET: &'static str = "\x1B[0m";
pub const BOLD: &'static str = "\x1B[1m";
pub const BLACK: &'static str = "\x1B[30m";
pub const RED: &'static str = "\x1B[31m";
pub const GREEN: &'static str = "\x1B[32m";
pub const YELLOW: &'static str = "\x1B[33m";
pub const BLUE: &'static str = "\x1B[34m";
pub const MAGENTA: &'static str = "\x1B[35m";
pub const CYAN: &'static str = "\x1B[36m";
pub const WHITE: &'static str = "\x1B[37m";
pub const GRAY: &'static str = "\x1B[90m";
pub const BOLD_RED: &'static str = "\x1B[1;31m";
pub const BOLD_GREEN: &'static str = "\x1B[1;32m";
pub const BOLD_YELLOW: &'static str = "\x1B[1;33m";
pub const BOLD_BLUE: &'static str = "\x1B[1;34m";
pub const BOLD_MAGENTA: &'static str = "\x1B[1;35m";
pub const BOLD_CYAN: &'static str = "\x1B[1;36m";
pub const BOLD_WHITE: &'static str = "\x1B[1;37m";
}
pub fn colorize(text: &str, color: &str) -> String {
format!("{}{}{}", color, text, Colors::RESET)
}
pub fn header(text: &str) -> String {
colorize(&format!("=== {} ===", text), Colors::BOLD_GREEN)
}
pub fn sub_header(text: &str) -> String {
colorize(text, Colors::BOLD_CYAN)
}
pub fn entity(text: &str) -> String {
colorize(text, Colors::CYAN)
}
pub fn warning(text: &str) -> String {
colorize(text, Colors::YELLOW)
}
pub fn error(text: &str) -> String {
colorize(text, Colors::RED)
}
pub fn secondary(text: &str) -> String {
colorize(text, Colors::GRAY)
}
pub fn success(text: &str) -> String {
colorize(text, Colors::GREEN)
}
pub fn label(text: &str) -> String {
colorize(text, Colors::BOLD)
}
pub fn id(text: &str) -> String {
colorize(text, Colors::GRAY)
}
pub fn info(text: &str) -> String {
colorize(text, Colors::BLUE)
}