diff options
Diffstat (limited to 'src/macros.rs')
-rw-r--r-- | src/macros.rs | 66 |
1 files changed, 49 insertions, 17 deletions
diff --git a/src/macros.rs b/src/macros.rs index 2b1de62..40c37cf 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -1,20 +1,4 @@ #[macro_export] -macro_rules! printerr { - ($($arg:tt)*) => ({ - use std::io::{Write, stderr}; - use crossterm::{execute}; - use crossterm::style::{Print, SetForegroundColor, ResetColor, Color}; - execute!( - stderr(), - SetForegroundColor(Color::Red), - Print("✖ ".to_string()), - Print($($arg)*.to_string()), - ResetColor - ).ok(); - }) -} - -#[macro_export] macro_rules! print_error { ($skin: expr, $md: literal $(, $value: expr )* $(,)? ) => {{ use lazy_static::lazy_static; @@ -39,7 +23,55 @@ macro_rules! print_notice { let err = &mut std::io::stderr(); let p = $skin.paragraph.clone(); $skin.paragraph.set_fg(crossterm::style::Color::Yellow); - termimad::mad_write_inline!(err, $skin, "✖ ").map_err(Error::from)?; + termimad::mad_write_inline!(err, $skin, "➜ ").map_err(Error::from)?; + $skin.write_composite(err, mad_inline!($md $(, $value)*)).map_err(Error::from)?; + $skin.paragraph = p; + Ok::<(), Error>(()) + }}; +} + +#[macro_export] +macro_rules! print_success { + ($skin: expr, $md: literal $(, $value: expr )* $(,)? ) => {{ + use lazy_static::lazy_static; + use minimad::mad_inline; + use crate::error::Error; + let err = &mut std::io::stderr(); + let p = $skin.paragraph.clone(); + $skin.paragraph.set_fg(crossterm::style::Color::Green); + termimad::mad_write_inline!(err, $skin, "✔ ").map_err(Error::from)?; + $skin.write_composite(err, mad_inline!($md $(, $value)*)).map_err(Error::from)?; + $skin.paragraph = p; + Ok::<(), Error>(()) + }}; +} + +#[macro_export] +macro_rules! print_log { + ($skin: expr, $md: literal $(, $value: expr )* $(,)? ) => {{ + use lazy_static::lazy_static; + use minimad::mad_inline; + use crate::error::Error; + let err = &mut std::io::stderr(); + let p = $skin.paragraph.clone(); + $skin.paragraph.set_fg(crossterm::style::Color::Blue); + termimad::mad_write_inline!(err, $skin, "• ").map_err(Error::from)?; + $skin.write_composite(err, mad_inline!($md $(, $value)*)).map_err(Error::from)?; + $skin.paragraph = p; + Ok::<(), Error>(()) + }}; +} + +#[macro_export] +macro_rules! print_warn { + ($skin: expr, $md: literal $(, $value: expr )* $(,)? ) => {{ + use lazy_static::lazy_static; + use minimad::mad_inline; + use crate::error::Error; + let err = &mut std::io::stderr(); + let p = $skin.paragraph.clone(); + $skin.paragraph.set_fg(crossterm::style::Color::Magenta); + termimad::mad_write_inline!(err, $skin, "⚡").map_err(Error::from)?; $skin.write_composite(err, mad_inline!($md $(, $value)*)).map_err(Error::from)?; $skin.paragraph = p; Ok::<(), Error>(()) |