macro_rules! bail { ($err:expr $(,)?) => { ... }; }
Expand description
Creates a Report
and returns it as Result
.
Shorthand for return
Err(
report!(...)
)
ยงExamples
use std::fs;
use error_stack::bail;
match fs::read_to_string("/path/to/file") {
Ok(content) => println!("file contents: {content}"),
Err(err) => bail!(err),
}
use core::fmt;
use error_stack::{bail, Context};
#[derive(Debug)]
struct PermissionDenied(User, Resource);
impl fmt::Display for PermissionDenied {
fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
...
}
impl Context for PermissionDenied {}
if !has_permission(&user, &resource) {
bail!(PermissionDenied(user, resource));
}