ensure

Macro ensure 

Source
macro_rules! ensure {
    ($cond:expr, $err:expr $(,)?) => { ... };
}
Expand description

Ensures $cond is met; otherwise return an error.

Shorthand for if !$cond { bail!(...); }.

ยงExamples

Create an Exn from an Error:

use std::error::Error;
use std::fmt;

use gix_error::ensure;

#[derive(Debug)]
struct PermissionDenied(User, Resource);

impl fmt::Display for PermissionDenied {
    fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
        write!(fmt, "permission denied")
    }
}

impl Error for PermissionDenied {}

ensure!(
    has_permission(&user, &resource),
    PermissionDenied(user, resource),
);