use std::num::ParseFloatError;
use thiserror::Error;
use fraction::error::ParseError as ParsingFractionError;
use standardform::ParsingStandardFormError ;
#[derive(Error,Debug,Clone)]
#[error("Failed to parse the number:\nfraction error: {fraction},\ndouble error: {double},\nstandard form error: {sf}",)]
pub struct ParsingNumberError {
fraction : ParsingFractionError,
double : ParseFloatError,
sf : ParsingStandardFormError
}
impl ParsingNumberError {
pub(crate) fn new(fraction : ParsingFractionError, double : ParseFloatError,sf : ParsingStandardFormError) -> Self {
Self { fraction , double , sf }
}
pub fn fraction(&self) -> &ParsingFractionError {
&self.fraction
}
pub fn double(&self) -> &ParseFloatError {
&self.double
}
pub fn standardform(&self) -> &ParsingStandardFormError {
&self.sf
}
}