arkley_numerics/
errors.rs1use std::num::{ParseFloatError,ParseIntError};
2
3#[derive(Debug)]
5pub enum ParsingStandardFormError {
6 Mantissa(ParseFloatError),
8 Exponent(ParseIntError),
10 InvalidFormat,
12}
13
14impl std::fmt::Display for ParsingStandardFormError {
15 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
16 match self {
17 ParsingStandardFormError::Mantissa(err) => write!(f, "Error parsing mantissa: {}", err),
18 ParsingStandardFormError::Exponent(err) => write!(f, "Error parsing exponent: {}", err),
19 ParsingStandardFormError::InvalidFormat => write!(f, "Invalid format"),
20 }
21 }
22}
23
24#[derive(Debug)]
34pub struct ParsingNumberError(pub(super) ParseFloatError,pub(super) ParsingStandardFormError);
35
36impl std::fmt::Display for ParsingNumberError {
37 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
38 let float_err = &self.0;
39 let sf_err = &self.1;
40
41 write!(
42 f,
43 "Invalid input format: Couldn't parse as f64 or StandardForm due to:\n\
44 ------ Float Parsing Error ------\n\
45 {float_err}\n\
46 ------ StandardForm Parsing Error ------\n\
47 {sf_err}",
48 )
49 }
50}