Skip to main content

ErrorKind

Enum ErrorKind 

Source
pub enum ErrorKind<E, B> {
    Std {
        source: E,
        backtrace: B,
    },
    Err2 {
        source: E,
    },
}
Expand description

Represents the kind of error after downcasting BoxedError2.

Used to distinguish between standard library errors and Error2 errors when downcasting type-erased errors.

§Variants

  • Std: Error from std::error::Error (has its own backtrace)
  • Err2: Error implementing Error2 (reuses parent backtrace)

§Example

use std::io;

use error2::{kind::ErrorKind, prelude::*};

let err = std::io::Error::from(std::io::ErrorKind::NotFound);
let boxed = BoxedError2::from_std(err);

// Downcast to get the ErrorKind
match boxed.downcast_ref::<io::Error>() {
    Some(ErrorKind::Std { source, backtrace }) => {
        println!("Std error: {}", source);
    }
    Some(ErrorKind::Err2 { source }) => {
        println!("Error2: {}", source);
    }
    None => {}
}

Variants§

§

Std

Standard library error with its own backtrace.

Fields

§source: E

The underlying error.

§backtrace: B

The error’s backtrace.

§

Err2

Error2 error that reuses the parent’s backtrace.

Fields

§source: E

The underlying Error2 instance.

Auto Trait Implementations§

§

impl<E, B> Freeze for ErrorKind<E, B>
where E: Freeze, B: Freeze,

§

impl<E, B> RefUnwindSafe for ErrorKind<E, B>

§

impl<E, B> Send for ErrorKind<E, B>
where E: Send, B: Send,

§

impl<E, B> Sync for ErrorKind<E, B>
where E: Sync, B: Sync,

§

impl<E, B> Unpin for ErrorKind<E, B>
where E: Unpin, B: Unpin,

§

impl<E, B> UnwindSafe for ErrorKind<E, B>
where E: UnwindSafe, B: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.