use crate::validator::ValidationError;
#[derive(thiserror::Error, Debug, serde::Serialize)]
#[serde(untagged)]
pub enum ParseError {
#[error("Error at line {line_number} ({raw_line}): {message}")]
GrammarError {
#[serde(rename = "ln")]
line_number: usize,
#[serde(rename = "col")]
column_number: usize,
#[serde(rename = "c")]
raw_line: String,
#[serde(rename = "e")]
message: String,
},
#[error("Error parsing meta: {0}")]
MetaError(String),
#[error("{0}")]
Custom(String),
#[error("{0:?}")]
ValidationError(Vec<ValidationError>),
}