Macro caco3_web::measure_time
source · macro_rules! measure_time { (@unit [$unit:literal, $as_unit:ident]; $tag:expr, $expr:expr) => { ... }; (@auto $tag:expr, $expr:expr) => { ... }; ($tag:expr, $expr:expr) => { ... }; (MILLI, $tag:expr, $expr:expr) => { ... }; (MICRO, $tag:expr, $expr:expr) => { ... }; (NANO, $tag:expr, $expr:expr) => { ... }; (SEC, $tag:expr, $expr:expr) => { ... }; }
Expand description
Measure given expression usage time.
If expression is early return, Time will not be measured.
It occur when we use ? in expression.
Some kind of that expression can be measured by moving ? out of expression.
For example
ⓘ
// This is async method that return Result
async fn get() -> Result<(), ()> { ... }
async fn main() -> Result<(), ()> {
const TAG: &'static str = "Get something";
// don't do this, if error occur, measurement log is not emit.
measure_time!(TAG, get().await?);
// change to this instead.
measure_time!(TAG, get().await)?;
}NOTE:
- Use
;as a unit separator cause rustfmt at call site not working properly. $tagcan be anything that implementstd::fmt::Display.