Macro cli_log::time [−][src]
macro_rules! time { ($timed: expr $(,)?) => { ... }; ($level: ident, $timed: expr $(,)?) => { ... }; ($name: expr, $timed: expr $(,)?) => { ... }; ($level: ident, $name: expr, $timed: expr $(,)?) => { ... }; ($cat: expr, $name :expr, $timed: expr $(,)?) => { ... }; ($level: ident, $cat: expr, $name :expr, $timed: expr $(,)?) => { ... }; }
Expand description
print the time that executing some expression took but only when relevant according to log level.
The goal of this macro is to avoid doing useless
Instant::now
.
Arguments:
- log level, optional (default is
Debug
) - a category, optional (only if name is set)
- a name, optional (stringified expression is used by default)
- the expression whose duration we want to log depending on the level
Examples:
let result = time!(do_stuff(4)); let result = time!(Debug, do_stuff(3))?; let result = time!("World creation", do_stuff(7)); let sum = time!(Debug, "summing", 2 + 2); let sum = time!(Debug, "summing", 2 + 2); let mult = time!("operations", "mult 4", 3 * 4); let mult = time!(Info, "operations", "mult 4", 3 * 4);