momoa 3.2.0

A JSON parsing library suitable for static analysis
Documentation
use crate::tokens::TokenKind;
use serde::Serialize;
use std::fmt;
use thiserror::Error;

#[derive(Error, Clone, Copy, Serialize)]
pub enum MomoaError {
    #[error("Unexpected character {c:?} found. ({line:?}:{column:?})")]
    UnexpectedCharacter { c: char, line: usize, column: usize },

    #[error("Unexpected end of input found. ({line:?}:{column:?})")]
    UnexpectedEndOfInput { line: usize, column: usize },

    #[error("Unexpected element found. ({line:?}:{column:?})")]
    UnexpectedElement { line: usize, column: usize },

    #[error("Unexpected token {unexpected:?} found. ({line:?}:{column:?})")]
    UnexpectedToken {
        unexpected: TokenKind,
        line: usize,
        column: usize,
    },

    #[error("Expected token {expected:?} but found {unexpected:?}. ({line:?}:{column:?})")]
    MissingExpectedToken {
        expected: TokenKind,
        unexpected: TokenKind,
        line: usize,
        column: usize,
    },
}

impl fmt::Debug for MomoaError {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        f.write_str(&self.to_string())
    }
}