ensure

Macro ensure 

Source
macro_rules! ensure {
    ($cond:expr, $($args:tt)*) => { ... };
}
Expand description

Returns early with an Error if a condition is not satisfied.

This macro is equivalent to if !$cond { return Err(anyhow!($args...)); }.

ยงExamples

use anyhow_tracing::{ensure, Result};

fn example(value: i32) -> Result<()> {
    ensure!(value > 0, "Value must be positive");
    ensure!(value < 200, user_id = %"123", "Value {} is too large", value);
    ensure!(value < 300, value, "Value is too large");
    // Multiple fields can be combined
    ensure!(value <= 100, value, max_allowed = "100", "Number must be at most 100");
    Ok(())
}