macro_rules! ensure {
($cond:expr, $err:expr $(,)?) => { ... };
}
Expand description
Ensures $cond
is met, otherwise return an error.
Shorthand for if !$cond { bail!(..)) }
ยงExamples
Create a Report
from an Error
:
use core::error::Error;
use core::fmt;
use error_stack::ensure;
#[derive(Debug)]
struct PermissionDenied(User, Resource);
impl fmt::Display for PermissionDenied {
fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
...
Ok(())
}
}
impl Error for PermissionDenied {}
ensure!(
has_permission(&user, &resource),
PermissionDenied(user, resource)
);