pub struct Error<Kind> { /* private fields */ }Expand description
A typed error wrapper carrying a Kind discriminant plus diagnostic metadata.
§no_alloc platforms
When compiled without the alloc feature, Error<Kind> retains kind,
context, and location inline. The error source chain is unavailable.
no_alloc targets are supported on a best-effort basis and are not a
primary target of this crate. Do not add more inline fields here: the
struct should stay lean for stack-constrained environments.
Implementations§
Source§impl<Kind> Error<Kind>
impl<Kind> Error<Kind>
pub fn new(context: &'static str, kind: Kind) -> Self
pub fn with_source<E>(self, source: E) -> Selfwhere
E: Source,
pub fn kind(&self) -> &Kind
Sourcepub fn location(&self) -> &'static Location<'static>
pub fn location(&self) -> &'static Location<'static>
Returns the source code location at which this error was constructed.
Captured automatically by Error::new via core::panic::Location::caller
and #[track_caller]. Useful for diagnostic logging and error reporting
when the variant alone does not narrow down the call site enough.
pub fn set_context(&mut self, context: &'static str)
pub fn report(&self) -> ErrorReport<'_, Kind>
Trait Implementations§
Auto Trait Implementations§
impl<Kind> Freeze for Error<Kind>where
Kind: Freeze,
impl<Kind> RefUnwindSafe for Error<Kind>where
Kind: RefUnwindSafe,
impl<Kind> Send for Error<Kind>where
Kind: Send,
impl<Kind> Sync for Error<Kind>where
Kind: Sync,
impl<Kind> Unpin for Error<Kind>where
Kind: Unpin,
impl<Kind> UnsafeUnpin for Error<Kind>where
Kind: UnsafeUnpin,
impl<Kind> UnwindSafe for Error<Kind>where
Kind: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more