#[macro_export]
macro_rules! time {
($timed: expr $(,)?) => {{
use cli_log::{
Level::*,
*,
};
if log_enabled!(Debug) {
let start = std::time::Instant::now();
match $timed {
value => {
log!(Debug, "{} took {:?}", stringify!($timed), start.elapsed());
value
}
}
} else {
$timed
}
}};
($level: ident, $timed: expr $(,)?) => {{
use cli_log::{
Level::*,
*,
};
if log_enabled!($level) {
let start = std::time::Instant::now();
match $timed {
value => {
log!($level, "{} took {:?}", stringify!($timed), start.elapsed());
value
}
}
} else {
$timed
}
}};
($name: expr, $timed: expr $(,)?) => {{
use cli_log::{
Level::*,
*,
};
if log_enabled!(Debug) {
let start = std::time::Instant::now();
match $timed {
value => {
log!(Debug, "{} took {:?}", $name, start.elapsed());
value
}
}
} else {
$timed
}
}};
($level: ident, $name: expr, $timed: expr $(,)?) => {{
use cli_log::{
Level::*,
*,
};
if log_enabled!($level) {
let start = std::time::Instant::now();
match $timed {
value => {
log!($level, "{} took {:?}", $name, start.elapsed());
value
}
}
} else {
$timed
}
}};
($cat: expr, $name :expr, $timed: expr $(,)?) => {{
use cli_log::{
Level::*,
*,
};
if log_enabled!(Debug) {
let start = std::time::Instant::now();
match $timed {
value => {
log!(Debug, "{} on {:?} took {:?}", $cat, $name, start.elapsed());
value
}
}
} else {
$timed
}
}};
($level: ident, $cat: expr, $name :expr, $timed: expr $(,)?) => {{
use cli_log::{
Level::*,
*,
};
if log_enabled!($level) {
let start = std::time::Instant::now();
match $timed {
value => {
log!($level, "{} on {:?} took {:?}", $cat, $name, start.elapsed());
value
}
}
} else {
$timed
}
}};
}