From 83221d91a90aeb7eaad02a8bc756daace5fda41e Mon Sep 17 00:00:00 2001 From: Ben Bridle Date: Tue, 4 Feb 2025 20:22:03 +1300 Subject: Use ansi crate for styling text --- Cargo.lock | 8 ++++++++ Cargo.toml | 1 + src/lib.rs | 59 ++++++++++++++--------------------------------------------- 3 files changed, 23 insertions(+), 45 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2244110..88e4c34 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,14 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "ansi" +version = "1.0.0" +source = "git+git://benbridle.com/ansi?tag=v1.0.0#81d47867c2c97a9ae1d1c8fdfcd42c582410ad2a" + [[package]] name = "log" version = "1.1.1" +dependencies = [ + "ansi", +] diff --git a/Cargo.toml b/Cargo.toml index 9bb96fe..0d6c19d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,3 +4,4 @@ version = "1.1.1" edition = "2021" [dependencies] +ansi = { git = "git://benbridle.com/ansi", tag = "v1.0.0" } diff --git a/src/lib.rs b/src/lib.rs index b461af7..11e826a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,18 +1,9 @@ mod log_level; pub use log_level::*; -use std::sync::Mutex; - - -pub mod ansi { - pub const NORMAL: &str = "\x1b[0m"; - pub const BOLD: &str = "\x1b[1m"; - pub const WHITE: &str = "\x1b[37m"; - pub const RED: &str = "\x1b[31m"; - pub const YELLOW: &str = "\x1b[33m"; - pub const BLUE: &str = "\x1b[34m"; -} +pub mod ansi { pub use ansi::*; } +use std::sync::Mutex; pub static LOG_LEVEL: Mutex = Mutex::new(LogLevel::Warn); @@ -28,15 +19,10 @@ pub fn get_log_level() -> LogLevel { #[macro_export] macro_rules! info { ($($tokens:tt)*) => { if *$crate::LOG_LEVEL.lock().unwrap() <= { $crate::LogLevel::Info } { - eprint!("{}{}[INFO]{}: ", - $crate::ansi::BOLD, - $crate::ansi::BLUE, - $crate::ansi::NORMAL, - ); + use $crate::ansi::*; + eprint!("{BOLD}{BLUE}[INFO]{NORMAL}: "); eprint!($($tokens)*); - eprintln!("{}", - $crate::ansi::NORMAL, - ); + eprintln!("{NORMAL}"); } }; } @@ -44,16 +30,10 @@ pub fn get_log_level() -> LogLevel { #[macro_export] macro_rules! warn { ($($tokens:tt)*) => {{ if *$crate::LOG_LEVEL.lock().unwrap() <= { $crate::LogLevel::Warn } { - eprint!("{}{}[WARNING]{}{}: ", - $crate::ansi::BOLD, - $crate::ansi::YELLOW, - $crate::ansi::NORMAL, - $crate::ansi::WHITE, - ); + use $crate::ansi::*; + eprint!("{BOLD}{YELLOW}[WARNING]{NORMAL}{WHITE}: "); eprint!($($tokens)*); - eprintln!("{}", - $crate::ansi::NORMAL, - ); + eprintln!("{NORMAL}"); } }}; } @@ -61,16 +41,10 @@ pub fn get_log_level() -> LogLevel { #[macro_export] macro_rules! error { ($($tokens:tt)*) => {{ if *$crate::LOG_LEVEL.lock().unwrap() <= { $crate::LogLevel::Error } { - eprint!("{}{}[ERROR]{}: ", - $crate::ansi::BOLD, - $crate::ansi::RED, - $crate::ansi::WHITE, - - ); + use $crate::ansi::*; + eprint!("{BOLD}{RED}[ERROR]{WHITE}: "); eprint!($($tokens)*); - eprintln!("{}", - $crate::ansi::NORMAL, - ); + eprintln!("{NORMAL}"); } }}; } @@ -78,15 +52,10 @@ pub fn get_log_level() -> LogLevel { #[macro_export] macro_rules! fatal { ($($tokens:tt)*) => {{ if *$crate::LOG_LEVEL.lock().unwrap() <= { $crate::LogLevel::Fatal } { - eprint!("{}{}[FATAL]{}: ", - $crate::ansi::BOLD, - $crate::ansi::RED, - $crate::ansi::WHITE, - ); + use $crate::ansi::*; + eprint!("{BOLD}{RED}[FATAL]{WHITE}: "); eprint!($($tokens)*); - eprintln!("{}", - $crate::ansi::NORMAL, - ); + eprintln!("{NORMAL}"); } std::process::exit(1); }}; -- cgit v1.2.3-70-g09d2