Expand description
An enumeration of possible errors.
This will create a number of context selectors:
Leaf errors
Context selectors for error variants without a source, such
as Leaf, have methods to construct them, such as
Leaf::build or Leaf::fail. The ensure macro also
accepts these kinds of context selectors.
use snafu::ensure;
fn always_fails() -> Result<(), Error> {
    Leaf { user_id: 42 }.fail()
}
fn sometimes_fails(user_id: i32) -> Result<(), Error> {
    ensure!(user_id > 0, Leaf { user_id });
    Ok(())
}Intermediate errors
Context selectors for error variants with a source, such as
Intermediate, are intended to be used with the
ResultExt::context family of methods.
use snafu::ResultExt;
fn load_config_file() -> Result<usize, Error> {
    let config = std::fs::read_to_string("/path/to/my/config/file").context(Intermediate)?;
    Ok(config.len())
}Variants
Leaf
Fields
user_id: i32Intermediate
Fields
source: ErrorTrait Implementations
sourceimpl Error for Error where
    Self: Debug + Display, 
 
impl Error for Error where
    Self: Debug + Display, 
sourcefn description(&self) -> &str
 
fn description(&self) -> &str
👎 Deprecated since 1.42.0: 
use the Display impl or to_string()
sourcefn cause(&self) -> Option<&dyn Error>
 
fn cause(&self) -> Option<&dyn Error>
👎 Deprecated since 1.33.0: 
replaced by Error::source, which can support downcasting
sourceimpl ErrorCompat for Error
 
impl ErrorCompat for Error
sourceimpl IntoError<Error> for Intermediate where
    Error: Error + ErrorCompat, 
 
impl IntoError<Error> for Intermediate where
    Error: Error + ErrorCompat, 
Auto Trait Implementations
impl !RefUnwindSafe for Error
impl Send for Error
impl Sync for Error
impl Unpin for Error
impl !UnwindSafe for Error
Blanket Implementations
sourceimpl<T> AsErrorSource for T where
    T: 'static + Error, 
 
impl<T> AsErrorSource for T where
    T: 'static + Error, 
sourcefn as_error_source(&self) -> &(dyn Error + 'static)
 
fn as_error_source(&self) -> &(dyn Error + 'static)
For maximum effectiveness, this needs to be called as a method to benefit from Rust’s automatic dereferencing of method receivers. Read more
sourceimpl<T> BorrowMut<T> for T where
    T: ?Sized, 
 
impl<T> BorrowMut<T> for T where
    T: ?Sized, 
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more