mod interface;
pub use interface::Level;
mod functions;
pub use functions::*;
#[macro_export]
macro_rules! error {
($($arg:tt)+) => ($crate::log($crate::Flag::Level($crate::Level::Error), format!($($arg)+)))
}
#[macro_export]
macro_rules! warn {
($($arg:tt)+) => ($crate::log($crate::Flag::Level($crate::Level::Warn), format!($($arg)+)))
}
#[macro_export]
macro_rules! debug {
($($arg:tt)+) => ($crate::log($crate::Flag::Level($crate::Level::Debug), format!($($arg)+)))
}
#[macro_export]
macro_rules! info {
($($arg:tt)+) => ($crate::log($crate::Flag::Level($crate::Level::Info), format!($($arg)+)))
}
#[macro_export]
macro_rules! success {
($($arg:tt)+) => ($crate::log($crate::Flag::Level($crate::Level::Success), format!($($arg)+)))
}
#[macro_export]
macro_rules! trace {
($($arg:tt)+) => ($crate::log($crate::Flag::Level($crate::Level::Trace), format!($($arg)+)))
}
#[macro_export]
macro_rules! help {
($($arg:tt)+) => ($crate::log($crate::Flag::Level($crate::Level::Help), format!($($arg)+)))
}
#[macro_export]
macro_rules! custom {
($level: expr, $message: expr) => {
$crate::log($crate::Flag::String($level), $message)
};
}
#[macro_export]
macro_rules! fatal {
($($arg:tt)+) => ($crate::log($crate::Flag::Level($crate::Level::Fatal), format!($($arg)+)))
}
#[cfg(test)]
mod tests {
use super::*;
#[test] fn macros() {
trace!("Trace message."); debug!("Debug message."); info!("Info message."); success!("Success message."); warn!("Warn message."); error!("Error message."); custom!("🧠CSTM".to_string(), format!("Custom message.")); }
}