yazi/yazi-macro/src/log.rs
2025-03-06 07:24:41 +08:00

19 lines
457 B
Rust

#[macro_export]
macro_rules! time {
($expr:expr) => {
$crate::time!(stringify!($expr), $expr)
};
($label:expr, $expr:expr) => {
$crate::time!($expr, "{}", $label)
};
($expr:expr, $fmt:expr, $($args:tt)*) => {{
if tracing::enabled!(tracing::Level::DEBUG) {
let start = std::time::Instant::now();
let result = $expr;
tracing::debug!("{} took {:?}", format_args!($fmt, $($args)*), start.elapsed());
result
} else {
$expr
}
}};
}