Enum snafu::guide::examples::basic::Error [−][src]
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
Fields of Leaf
user_id: i32
Fields of Intermediate
source: Error
Trait Implementations
impl Debug for Error
[src]
impl Display for Error
[src]
impl Error for Error where
Self: Debug + Display,
[src]
Self: Debug + Display,
fn description(&self) -> &str
[src]
fn cause(&self) -> Option<&dyn Error>
[src]
fn source(&self) -> Option<&(dyn Error + 'static)>
[src]
pub fn backtrace(&self) -> Option<&Backtrace>
[src]
impl ErrorCompat for Error
[src]
impl<__T0> IntoError<Error> for Leaf<__T0> where
Error: Error + ErrorCompat,
__T0: Into<i32>,
[src]
Error: Error + ErrorCompat,
__T0: Into<i32>,
impl IntoError<Error> for Intermediate where
Error: Error + ErrorCompat,
[src]
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
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> AsErrorSource for T where
T: 'static + Error,
[src]
T: 'static + Error,
pub fn as_error_source(&Self) -> &(dyn Error + 'static)
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,