1use core::fmt::{self, Display, Formatter};
4
5#[derive(Clone, Copy, Debug, Eq, PartialEq)]
7pub enum ConversionError {
8 OutOfBounds,
10 LossOfPrecision,
12}
13
14impl Display for ConversionError {
15 fn fmt(&self, f: &mut Formatter) -> fmt::Result {
16 match self {
17 ConversionError::OutOfBounds => f.write_str("number out of bounds"),
18 ConversionError::LossOfPrecision => f.write_str("number can't be converted losslessly"),
19 }
20 }
21}
22
23#[cfg(feature = "std")]
24impl std::error::Error for ConversionError {}
25
26#[derive(Clone, Copy, Debug, Eq, PartialEq)]
28pub enum ParseError {
29 NoDigits,
31 InvalidDigit,
33 UnsupportedRadix,
35 InconsistentRadix,
37}
38
39impl Display for ParseError {
40 fn fmt(&self, f: &mut Formatter) -> fmt::Result {
41 match self {
42 ParseError::NoDigits => f.write_str("no digits"),
43 ParseError::InvalidDigit => f.write_str("invalid digit"),
44 ParseError::UnsupportedRadix => f.write_str("unsupported radix"),
45 ParseError::InconsistentRadix => f.write_str("inconsistent radix"),
46 }
47 }
48}
49
50#[cfg(feature = "std")]
51impl std::error::Error for ParseError {}