#[macro_export]
macro_rules! debug {
($($arg:tt)*) => { $crate::log::debug(::std::format!($($arg)*)) };
}
#[macro_export]
macro_rules! info {
($($arg:tt)*) => { $crate::log::info(::std::format!($($arg)*)) };
}
#[macro_export]
macro_rules! notice {
($($arg:tt)*) => { $crate::log::notice(::std::format!($($arg)*)) };
}
#[macro_export]
macro_rules! warning {
($($arg:tt)*) => { $crate::log::warning(::std::format!($($arg)*)) };
}
#[macro_export]
macro_rules! error {
($($arg:tt)*) => { $crate::log::error(::std::format!($($arg)*)) };
}
#[macro_export]
macro_rules! group {
($name:expr, $body:block) => {
$crate::log::group($name, || $body)
};
}
#[cfg(test)]
mod tests {
#[test]
fn group_macro_returns_value() {
let n = group!("compute", { 6 * 7 });
assert_eq!(n, 42);
}
#[test]
fn log_macros_format_without_panicking() {
let x = 3;
debug!("debug {x}");
info!("info {}", x);
notice!("notice");
warning!("warn {x}");
error!("err {x}");
}
}