use derive_more::From;
#[derive(Debug, From, PartialEq)]
pub enum Error<'a> {
#[cfg(not(feature = "alloc"))]
BufferTooSmall,
SliceTooShort,
UnsupportedTypeNameFormat(crate::TypeNameFormat),
InvalidExternalType(&'a str),
UnsupportedRecordType(&'a str),
#[from]
UTF8(core::str::Utf8Error),
#[from]
#[cfg(feature = "alloc")]
UTF8Decode(alloc::string::FromUtf8Error),
#[cfg(feature = "alloc")]
UTF16Decode,
#[cfg(feature = "alloc")]
UTF16OddLength(usize),
}
pub type Result<'a, T> = core::result::Result<T, Error<'a>>;
impl<'a> core::fmt::Display for Error<'a> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
write!(f, "{self:?}")
}
}