Macro snafu::ensure_whatever
source · macro_rules! ensure_whatever { ($predicate:expr, $fmt:literal$(, $($arg:expr),* $(,)?)?) => { ... }; }
Expand description
Ensure a condition is true. If it is not, return a stringly-typed error message.
This can be used with the provided Whatever
type or with a
custom error type that uses snafu(whatever)
.
§Examples
use snafu::prelude::*;
#[derive(Debug, Snafu)]
#[snafu(whatever, display("Error was: {message}"))]
struct Error {
message: String,
}
type Result<T, E = Error> = std::result::Result<T, E>;
fn get_bank_account_balance(account_id: &str) -> Result<u8> {
ensure_whatever!(
moon_is_rising(),
"We are recalibrating the dynamos for account {account_id}, sorry",
);
Ok(100)
}