rimu_value/serde/
error.rs1use std::fmt::Display;
2
3use serde::{de, ser};
4
5#[derive(Debug, Clone, thiserror::Error)]
6pub enum SerdeValueError {
7 #[error("{0}")]
8 Deserialize(String),
9
10 #[error("{0}")]
11 Serialize(String),
12
13 #[error("")]
15 EofWhileParsingList,
16
17 #[error("")]
19 EofWhileParsingObject,
20
21 #[error("")]
23 EofWhileParsingString,
24
25 #[error("")]
27 EofWhileParsingValue,
28
29 #[error("")]
31 ExpectedColon,
32
33 #[error("")]
35 ExpectedListCommaOrEnd,
36
37 #[error("")]
39 ExpectedObjectCommaOrEnd,
40
41 #[error("")]
43 ExpectedSomeIdent,
44
45 #[error("")]
47 ExpectedSomeValue,
48
49 #[error("")]
51 ExpectedDoubleQuote,
52
53 #[error("")]
55 InvalidEscape,
56
57 #[error("")]
59 InvalidNumber,
60
61 #[error("")]
63 NumberOutOfRange,
64
65 #[error("")]
67 InvalidUnicodeCodePoint,
68
69 #[error("")]
71 ControlCharacterWhileParsingString,
72
73 #[error("")]
75 KeyMustBeAString,
76
77 #[error("")]
79 ExpectedNumericKey,
80
81 #[error("")]
83 FloatKeyMustBeFinite,
84
85 #[error("")]
87 LoneLeadingSurrogateInHexEscape,
88
89 #[error("")]
91 TrailingComma,
92
93 #[error("")]
95 TrailingCharacters,
96
97 #[error("")]
99 UnexpectedEndOfHexEscape,
100
101 #[error("")]
103 RecursionLimitExceeded,
104}
105
106impl de::Error for SerdeValueError {
107 fn custom<T: Display>(msg: T) -> Self {
108 SerdeValueError::Deserialize(msg.to_string())
109 }
110}
111
112impl ser::Error for SerdeValueError {
113 fn custom<T: Display>(msg: T) -> Self {
114 SerdeValueError::Serialize(msg.to_string())
115 }
116}