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