use core::error::Error;
use core::fmt::{self, Display, Formatter};
use core::num::ParseFloatError;
use crate::IbmFloatError;
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum ParseIbmFloatError {
InvalidFloat(ParseFloatError),
Conversion(IbmFloatError),
}
impl Display for ParseIbmFloatError {
fn fmt(&self, formatter: &mut Formatter<'_>) -> fmt::Result {
match self {
Self::InvalidFloat(e) => Display::fmt(e, formatter),
Self::Conversion(e) => Display::fmt(e, formatter),
}
}
}
impl Error for ParseIbmFloatError {
fn source(&self) -> Option<&(dyn Error + 'static)> {
match self {
Self::InvalidFloat(e) => Some(e),
Self::Conversion(e) => Some(e),
}
}
}
impl From<ParseFloatError> for ParseIbmFloatError {
#[inline]
fn from(value: ParseFloatError) -> Self {
Self::InvalidFloat(value)
}
}
impl From<IbmFloatError> for ParseIbmFloatError {
#[inline]
fn from(value: IbmFloatError) -> Self {
Self::Conversion(value)
}
}