use alloc::string::{String, ToString};
use core::fmt;
pub type Result<T> = core::result::Result<T, Error>;
#[derive(Debug, Clone, PartialEq)]
pub enum Error {
InvalidTypeString(String),
InvalidSize(String),
}
impl Error {
#[inline(always)]
pub fn invalid_type_string(ty: impl ToString) -> Self {
Self::InvalidTypeString(ty.to_string())
}
#[inline(always)]
pub fn invalid_size(ty: impl ToString) -> Self {
Self::InvalidSize(ty.to_string())
}
}
#[cfg(feature = "std")]
impl std::error::Error for Error {}
impl fmt::Display for Error {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::InvalidTypeString(s) => write!(f, "Invalid type string: {s}"),
Self::InvalidSize(ty) => write!(f, "Invalid size for type: {ty}"),
}
}
}