Enum binrw::Error[][src]

#[non_exhaustive]pub enum Error {
    BadMagic {
        pos: u64,
        found: Box<dyn Debug + Send + Sync>,
    },
    AssertFail {
        pos: u64,
        message: String,
    },
    Io(Error),
    Custom {
        pos: u64,
        err: Box<dyn CustomError>,
    },
    NoVariantMatch {
        pos: u64,
    },
    EnumErrors {
        pos: u64,
        variant_errors: Vec<(&'static str, Error)>,
    },
}

The error type used by BinRead.

Variants (Non-exhaustive)

Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
BadMagic

An expected magic number was not found.

Fields of BadMagic

pos: u64

The byte position of the unexpected magic in the reader.

found: Box<dyn Debug + Send + Sync>

The value which was actually read.

AssertFail

An assertion failed.

This variant is used for assert directives which use a string literal instead of an error object. Assertions that use error objects are represented by the Custom variant.

Fields of AssertFail

pos: u64

The byte position of the start of the field or object that raised an error.

message: String

The failure message.

Io(Error)

An error occurred in the underlying reader while reading or seeking to data.

Custom

A user-generated error.

This variant is used for assert directives which use an error object instead of a string literal. Assertions that use string literals are represented by the AssertFail variant.

Fields of Custom

pos: u64

The byte position of the start of the field or object that raised an error.

err: Box<dyn CustomError>

The original error.

NoVariantMatch

None of the variants of an enum could successfully be parsed from the data in the reader.

This variant is used when the return_unexpected_error directive is set on an enum.

Fields of NoVariantMatch

pos: u64

The byte position of the unparsable data in the reader.

EnumErrors

None of the variants of an enum could successfully be parsed from the data in the reader.

This variant is used when the return_all_errors directive is set on an enum (which is the default).

Fields of EnumErrors

pos: u64

The byte position of the unparsable data in the reader.

variant_errors: Vec<(&'static str, Error)>

The original errors which occurred when trying to parse each variant.

The first field of the tuple is the name of the variant, and the second field is the error that occurred when parsing that variant.

Implementations

impl Error[src]

pub fn custom_err<T: Any>(&self) -> Option<&T>[src]

Returns a reference to the boxed error object if this Error is a custom error of type T, or None if it isn’t.

Trait Implementations

impl Debug for Error[src]

impl Display for Error[src]

impl Error for Error[src]

impl From<Error> for Error[src]

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]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> CustomError for T where
    T: 'static + Any + Display + Debug + Send + Sync
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.