[][src]Macro adhocerr::bail

macro_rules! bail {
    ($msg:literal) => { ... };
    ($msg:literal?) => { ... };
    ($fmt:literal, $($arg:tt)*) => { ... };
    ($fmt:literal, $($arg:tt)*?) => { ... };
}

Return an ad-hoc error immediately

This macro is equivalent to return Err(From::from($err)).

Example

use adhocerr::bail;

fn main() -> Result<(), impl std::error::Error + 'static> {
    if !has_permission(user, resource) {
        bail!("permission denied for accessing {}", resource);
    }

    Ok(())
}
use adhocerr::bail;

fn main() -> Result<(), anyhow::Error> {
    if depth > MAX_DEPTH {
        bail!("Recursion limit exceeded"?);
    }

    Ok(())
}