use core::any::TypeId;
use core::fmt::{Debug, Display};
pub trait Error: Debug + Display {
fn description(&self) -> &str {
"description() is deprecated; use Display"
}
fn cause(&self) -> Option<&dyn Error> {
self.source()
}
fn source(&self) -> Option<&(dyn Error + 'static)> {
None
}
fn type_id(&self) -> TypeId
where
Self: 'static,
{
TypeId::of::<Self>()
}
}
impl Error for core::alloc::LayoutErr {}
impl Error for core::array::TryFromSliceError {}
impl Error for core::cell::BorrowError {}
impl Error for core::cell::BorrowMutError {}
impl Error for core::char::CharTryFromError {}
impl Error for core::char::DecodeUtf16Error {}
impl Error for core::char::ParseCharError {}
impl Error for core::fmt::Error {}
impl Error for core::num::ParseFloatError {}
impl Error for core::num::ParseIntError {}
impl Error for core::num::TryFromIntError {}
impl Error for core::str::ParseBoolError {}
impl Error for core::str::Utf8Error {}
impl Error for alloc::string::ParseError {}
#[cfg(feature = "unstable")]
impl Error for core::alloc::AllocError {}
#[cfg(feature = "unstable")]
impl Error for alloc::collections::TryReserveError {}