#[macro_export]
macro_rules! CRITICAL {
(($($fmt:tt)*) $(,$($args:expr),*)?) => {
eprintln!(concat!(file!(), ":", line!(), ": ", $($fmt)*) $(,$($args),*)?)
};
($fmt:literal $(,$($args:expr),*)?) => {
eprintln!(concat!(file!(), ":", line!(), ": ", $fmt) $(,$($args),*)?)
};
}
#[macro_export]
macro_rules! CRITICAL_DBG {
($($msg:tt)+) => {{
#[cfg(debug_assertions)]
$crate::CRITICAL!($($msg)+);
}}
}
#[macro_export]
macro_rules! NOTICE {
(($($fmt:tt)*) $(,$($args:expr),*)?) => {
eprintln!(concat!(file!(), ":", line!(), ": ", $($fmt)*) $(,$($args),*)?)
};
($fmt:literal $(,$($args:expr),*)?) => {
eprintln!(concat!(file!(), ":", line!(), ": ", $fmt) $(,$($args),*)?)
};
($expr:expr) => {
eprintln!(concat!(file!(), ":", line!(), ": {} == {:?}" ), stringify!($expr), $expr)
};
}
#[macro_export]
macro_rules! NOTICE_DBG {
($($msg:tt)+) => {{
#[cfg(debug_assertions)]
$crate::NOTICE!($($msg)+);
}}
}
#[macro_export]
macro_rules! TRACE {
(($($fmt:tt)*) $(,$($args:expr),*)?) => {
eprintln!(concat!(file!(), ":", line!(), ": ", $($fmt)*) $(,$($args),*)?)
};
($fmt:literal $(,$($args:expr),*)?) => {
eprintln!(concat!(file!(), ":", line!(), ": ", $fmt) $(,$($args),*)?)
};
($expr:expr) => {
eprintln!(concat!(file!(), ":", line!(), ": {} == {:?}" ), stringify!($expr), $expr)
};
() => {
eprintln!(concat!(file!(), ":", line!(), ": TRACEPOINT"))
};
}
#[macro_export]
macro_rules! TRACE_DBG {
($($msg:tt)*) => {{
#[cfg(debug_assertions)]
$crate::TRACE!($($msg)*)
}}
}
#[macro_export]
macro_rules! TRACE_DBG_IF {
($cond:expr => $($msg:tt)+) => {{
#[cfg(debug_assertions)]
if $cond {
$crate::TRACE!($($msg)+)
}
}};
($cond:expr) => {{
#[cfg(debug_assertions)]
if $cond {
$crate::TRACE!()
}
}};
}
#[macro_export]
macro_rules! NOTICE_ONCE {
(($($fmt:tt)*) $(,$($args:expr),*)?) => {
$crate::ONCE!(eprintln!(concat!(file!(), ":", line!(), ": ", $($fmt)*) $(,$($args),*)?))
};
($fmt:literal $(,$($args:expr),*)?) => {
$crate::ONCE!(eprintln!(concat!(file!(), ":", line!(), ": ", $fmt) $(,$($args),*)?))
};
($expr:expr) => {
$crate::ONCE!(eprintln!(concat!(file!(), ":", line!(), ": {} == {:?}" ), stringify!($expr), $expr))
};
}
#[macro_export]
macro_rules! NOTICE_ONCE_DBG {
($($msg:tt)+) => {{
#[cfg(debug_assertions)]
$crate::NOTICE_ONCE!($($msg)+);
}}
}
#[doc(hidden)]
#[macro_export]
macro_rules! TRACE_NOBUG {
($($msg:tt)*) => {
#[cfg(feature = "trace_nobug")]
$crate::TRACE!($($msg)*);
};
}