1#[derive(Debug, PartialEq, Eq)]
18pub enum Error {
19 UndefinedError,
20 UnexpectedEndOfFile,
21 UnexpectedObjectAsKey{line: usize, col: usize},
22 UnexpectedEndOfObject{line: usize, col: usize},
23 MissingValue {line: usize, col: usize},
24 QuoteInNonEscapeSequencedString
25}
26
27impl std::fmt::Display for Error {
28 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
29 match self {
30 Error::UndefinedError => write!(f, "Undefined error"),
31 Error::UnexpectedEndOfFile => write!(f, "Unexpected end of file"),
32 Error::UnexpectedObjectAsKey { line, col } => write!(f, "Unexpected object as key at {}:{}", line, col),
33 Error::UnexpectedEndOfObject { line, col } => write!(f, "Unexpected end of object at {}:{}", line, col),
34 Error::MissingValue { line, col } => write!(f, "Missing value at {}:{}", line, col),
35 Error::QuoteInNonEscapeSequencedString => write!(f, "Quote in non-escape sequenced string")
36 }
37 }
38}
39
40impl std::error::Error for Error {}
41
42pub type Result<T> = std::result::Result<T, Error>;