#[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)>,
},
Backtrace(Backtrace),
}Expand description
The error type used by BinRead.
Variants (Non-exhaustive)
This enum is marked as non-exhaustive
BadMagic
Fields
pos: u64The byte position of the unexpected magic in the reader.
An expected magic number was not found.
AssertFail
Fields
pos: u64The byte position of the start of the field or object that raised an error.
message: StringThe failure message.
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.
Io(Error)
An error occurred in the underlying reader while reading or seeking to data.
Custom
Fields
pos: u64The byte position of the start of the field or object that raised an error.
err: Box<dyn CustomError>The original error.
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.
NoVariantMatch
Fields
pos: u64The byte position of the unparsable data in the reader.
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.
EnumErrors
Fields
pos: u64The byte position of the unparsable data in the reader.
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).
Backtrace(Backtrace)
An error with additional frames of context used to construct a backtrace
Implementations
sourceimpl Error
impl Error
sourcepub fn root_cause(&self) -> &Self
pub fn root_cause(&self) -> &Self
Returns the source error. For a Backtrace this is the error that caused it, for every other error this returns self
sourcepub fn is_eof(&self) -> bool
pub fn is_eof(&self) -> bool
Check if the root cause of this error is an Error::Io and an
io::ErrorKind::UnexpectedEof.
sourcepub fn custom_err<T: CustomError + 'static>(&self) -> Option<&T>
pub fn custom_err<T: CustomError + 'static>(&self) -> Option<&T>
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
sourceimpl ContextExt for Error
impl ContextExt for Error
sourcefn with_context<Frame: Into<BacktraceFrame>>(self, frame: Frame) -> Self
fn with_context<Frame: Into<BacktraceFrame>>(self, frame: Frame) -> Self
Adds an additional frame of context to the backtrace
sourceimpl Error for Error
impl Error for Error
1.30.0 · sourcefn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
The lower-level source of this error, if any. Read more
sourcefn backtrace(&self) -> Option<&Backtrace>
fn backtrace(&self) -> Option<&Backtrace>
backtrace)Returns a stack backtrace, if available, of where this error occurred. Read more
1.0.0 · sourcefn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
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> 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
sourceimpl<T> CustomError for T where
T: 'static + Display + Debug + Send + Sync,
impl<T> CustomError for T where
T: 'static + Display + Debug + Send + Sync,
fn as_any(&self) -> &(dyn Any + Sync + Send + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + Sync + Send + 'static)
fn as_box_any(
self: Box<T, Global>
) -> Box<dyn Any + Sync + Send + 'static, Global>ⓘNotable traits for Box<R, Global>impl<R> Read for Box<R, Global> where
R: Read + ?Sized, impl<W> Write for Box<W, Global> where
W: Write + ?Sized,
R: Read + ?Sized, impl<W> Write for Box<W, Global> where
W: Write + ?Sized,