macro_rules! ensure {
($test:expr, $ctx:expr) => { ... };
}Expand description
Utility macro to return errors if a given condition is false.
§Arguments
test- Test expressionctx- Error context - only evaluated if test expression is false
§Example
#[evitable(description = "Error")]
#[derive(PartialEq)]
pub struct Context(u8);
fn validate(val: u8) -> Result<()> {
ensure!(val < 10, Context(val));
Ok(())
}
validate(5).unwrap();
assert_eq!(validate(15).unwrap_err().context(), &Context(15));