#[macro_export]
macro_rules! lfs_assert {
($cond:expr) => {
debug_assert!($cond)
};
($cond:expr, $($arg:tt)+) => {
debug_assert!($cond, $($arg)+)
};
}
#[cfg(feature = "log")]
#[macro_export]
macro_rules! lfs_debug {
($($arg:tt)*) => {
log::debug!($($arg)*)
};
}
#[cfg(not(feature = "log"))]
#[macro_export]
macro_rules! lfs_debug {
($($_:tt)*) => {};
}
#[cfg(feature = "log")]
#[macro_export]
macro_rules! lfs_error {
($($arg:tt)*) => {
log::error!($($arg)*)
};
}
#[cfg(not(feature = "log"))]
#[macro_export]
macro_rules! lfs_error {
($($_:tt)*) => {};
}
#[cfg(feature = "log")]
#[macro_export]
macro_rules! lfs_trace {
($($arg:tt)*) => {
log::trace!($($arg)*)
};
}
#[cfg(not(feature = "log"))]
#[macro_export]
macro_rules! lfs_trace {
($($_:tt)*) => {};
}
#[cfg(feature = "log")]
#[macro_export]
macro_rules! lfs_err {
($e:expr) => {{
$crate::lfs_trace!("lfs_err {} at {}:{}", $e, file!(), line!());
$e
}};
($e:expr, $fmt:expr, $($arg:tt)*) => {{
$crate::lfs_trace!(concat!("lfs_err {} at ", file!(), ":", line!(), " ", $fmt), $e, $($arg)*);
$e
}};
}
#[cfg(not(feature = "log"))]
#[macro_export]
macro_rules! lfs_err {
($e:expr) => {
$e
};
($e:expr, $($arg:tt)+) => {
$e
};
}
#[cfg(feature = "log")]
#[macro_export]
macro_rules! lfs_pass_err {
($e:expr) => {{
$crate::lfs_trace!("lfs_pass_err {} at {}:{}", $e, file!(), line!());
$e
}};
($e:expr, $fmt:expr, $($arg:tt)*) => {{
$crate::lfs_trace!(concat!("lfs_pass_err {} at ", file!(), ":", line!(), " ", $fmt), $e, $($arg)*);
$e
}};
}
#[cfg(not(feature = "log"))]
#[macro_export]
macro_rules! lfs_pass_err {
($e:expr) => {
$e
};
($e:expr, $($arg:tt)+) => {
$e
};
}