pub use crate::{
__debug as debug, __error as error, __info as info, __log_enabled as log_enabled,
__trace as trace, __warn as warn
};
#[repr(usize)]
#[derive(Copy, Clone, Eq, PartialEq, Debug, Hash)]
pub enum Level {
Error = 1,
Warn,
Info,
Debug,
Trace
}
#[doc(hidden)]
#[macro_export]
macro_rules! __log_enabled {
($lvl:expr) => {{
let _ = $lvl;
false
}};
}
#[cfg(feature = "std")]
#[doc(hidden)]
#[macro_export]
macro_rules! __error {
($($arg:tt)+) => {{
let _ = ::core::format_args!($($arg)+);
}};
}
#[cfg(not(feature = "std"))]
#[doc(hidden)]
#[macro_export]
macro_rules! __error {
($($arg:tt)+) => {{
let _ = ::core::format_args!($($arg)+);
}};
}
#[cfg(feature = "std")]
#[doc(hidden)]
#[macro_export]
macro_rules! __warn {
($($arg:tt)+) => {{
let _ = ::core::format_args!($($arg)+);
}};
}
#[cfg(not(feature = "std"))]
#[doc(hidden)]
#[macro_export]
macro_rules! __warn {
($($arg:tt)+) => {{
let _ = ::core::format_args!($($arg)+);
}};
}
#[cfg(feature = "std")]
#[doc(hidden)]
#[macro_export]
macro_rules! __info {
($($arg:tt)+) => {{
let _ = ::core::format_args!($($arg)+);
}};
}
#[cfg(not(feature = "std"))]
#[doc(hidden)]
#[macro_export]
macro_rules! __info {
($($arg:tt)+) => {{
let _ = ::core::format_args!($($arg)+);
}};
}
#[cfg(feature = "std")]
#[doc(hidden)]
#[macro_export]
macro_rules! __debug {
($($arg:tt)+) => {{
let _ = ::core::format_args!($($arg)+);
}};
}
#[cfg(not(feature = "std"))]
#[doc(hidden)]
#[macro_export]
macro_rules! __debug {
($($arg:tt)+) => {{
let _ = ::core::format_args!($($arg)+);
}};
}
#[cfg(feature = "std")]
#[doc(hidden)]
#[macro_export]
macro_rules! __trace {
($($arg:tt)+) => {{
let _ = ::core::format_args!($($arg)+);
}};
}
#[cfg(not(feature = "std"))]
#[doc(hidden)]
#[macro_export]
macro_rules! __trace {
($($arg:tt)+) => {{
let _ = ::core::format_args!($($arg)+);
}};
}
#[cfg(test)]
mod tests {
use crate::log::{debug, error, info, trace, warn};
#[test]
fn macros_expand_in_expression_position() {
let value = 42;
let _: () = { error!("error {}", value) };
let _: () = { warn!("warn {}", value) };
let _: () = { info!("info {}", value) };
let _: () = { debug!("debug {}", value) };
let _: () = { trace!("trace {}", value) };
}
#[test]
fn macros_expand_in_statement_position() {
warn!("no args");
warn!("with args {} {:?}", 1, "two");
}
}