1use std::error::Error;
17use std::fmt;
18
19#[derive(Debug, Eq, PartialEq)]
21pub struct ParseDecimalError;
22
23impl fmt::Display for ParseDecimalError {
24 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
25 f.write_str("invalid decimal syntax")
26 }
27}
28
29impl Error for ParseDecimalError {}
30
31#[derive(Debug, Eq, PartialEq)]
33pub struct InvalidPrecisionError;
34
35impl fmt::Display for InvalidPrecisionError {
36 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
37 f.write_str("invalid decimal precision")
38 }
39}
40
41impl Error for InvalidPrecisionError {}
42
43#[derive(Debug, Eq, PartialEq)]
46pub struct InvalidExponentError;
47
48impl fmt::Display for InvalidExponentError {
49 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
50 f.write_str("invalid decimal exponent")
51 }
52}
53
54impl Error for InvalidExponentError {}
55
56#[derive(Debug, Eq, PartialEq)]
64pub struct TryFromDecimalError;
65
66impl fmt::Display for TryFromDecimalError {
67 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
68 f.write_str("decimal cannot be expressed in target primitive type")
69 }
70}
71
72impl Error for TryFromDecimalError {}
73
74#[derive(Debug, Eq, PartialEq)]
77pub struct TryIntoDecimalError;
78
79impl fmt::Display for TryIntoDecimalError {
80 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
81 f.write_str("value cannot be precisely expressed as decimal")
82 }
83}
84
85impl Error for TryIntoDecimalError {}
86
87#[derive(Debug, Eq, PartialEq)]
90pub struct InvalidCoefficientError;
91
92impl fmt::Display for InvalidCoefficientError {
93 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
94 f.write_str("decimal's coefficient cannot be expressed in target primitive type")
95 }
96}
97
98impl Error for InvalidCoefficientError {}
99
100#[derive(Debug, Eq, PartialEq)]
103pub struct FromBcdError;
104
105impl fmt::Display for FromBcdError {
106 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
107 f.write_str("bcd or scale value invalid, either corrupted or out of acceptable range")
108 }
109}
110
111impl Error for FromBcdError {}