jxon/
error.rs

1use quick_xml::Error as QuickXmlError;
2use serde_json::Error as SerdeJsonError;
3use std::{fmt, str::Utf8Error};
4
5#[derive(Debug)]
6pub enum Error {
7    ParseStringError(Utf8Error),
8    XmlQuickXmlError(QuickXmlError),
9    XmlParseUnexpectedEof,
10    XmlParseTextOutsideRoot,
11    JsonParseError(SerdeJsonError),
12    JsonParseInvalidAttributeName,
13    JsonParseInvalidAttributeValue,
14    JsonParseExpectedArray,
15    JsonParseExpectedObject,
16    JsonParseUnexpectedArray,
17    JsonParseUnexpectedNull,
18    JsonParseUnexpectedBool,
19    JsonParseUnexpectedNumber,
20    JsonParseDeclMissingVersion,
21    JsonParseInvalidDecl,
22}
23
24impl fmt::Display for Error {
25    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
26        match self {
27            Error::ParseStringError(e) => write!(f, "Failed to parse utf8 string: {}", e),
28            Error::XmlQuickXmlError(e) => write!(f, "quick-xml error: {}", e),
29            Error::XmlParseUnexpectedEof => write!(f, "xml parse error: Unexpected end of file"),
30            Error::XmlParseTextOutsideRoot => write!(f, "xml parse error: Found text outside of the root tag"),
31            Error::JsonParseError(e) => write!(f, "json parse error:  {}", e),
32            Error::JsonParseInvalidAttributeName => {
33                write!(f, "json parse error: invalid attribute name")
34            }
35            Error::JsonParseInvalidAttributeValue => {
36                write!(f, "json parse error: invalid attribute value")
37            }
38            Error::JsonParseExpectedArray => write!(f, "json parse error: expected an array"),
39            Error::JsonParseExpectedObject => write!(f, "json parse error: expected an object"),
40            Error::JsonParseUnexpectedArray => write!(f, "json parse error: unexpected array"),
41            Error::JsonParseUnexpectedNull => write!(f, "json parse error: unexpected null"),
42            Error::JsonParseUnexpectedBool => write!(f, "json parse error: unexpected bool"),
43            Error::JsonParseUnexpectedNumber => write!(f, "json parse error: unexpected number"),
44            Error::JsonParseDeclMissingVersion => {
45                write!(f, "json parse error: missing xml version")
46            }
47            Error::JsonParseInvalidDecl => write!(f, "json parse error: invalid xml declaration"),
48        }
49    }
50}