[][src]Macro evitable::ensure

macro_rules! ensure {
    ($test:expr, $ctx:expr) => { ... };
}

Utility macro to return errors if a given condition is false.

Arguments

  • test - Test expression
  • ctx - Error context - only evaluated if test expression is false

Example

 #[derive(ErrorContext, PartialEq)]
 #[evitable(description = "Error")]
 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));