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 $(,)?) => { ... };
}

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:

#[macro_use] extern crate log;
#[macro_use] extern crate cli_log;
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);