1use crate::validator::ValidationError;
2
3#[derive(thiserror::Error, Debug, serde::Serialize)]
4#[serde(untagged)]
5pub enum ParseError {
6 #[error("Error at line {line_number} ({raw_line}): {message}")]
7 GrammarError {
8 #[serde(rename = "ln")]
9 line_number: usize,
10 #[serde(rename = "col")]
11 column_number: usize,
12 #[serde(rename = "c")]
13 raw_line: String,
14 #[serde(rename = "e")]
15 message: String,
16 },
17 #[error("Error parsing meta: {0}")]
18 MetaError(String),
19
20 #[error("{0}")]
21 Custom(String),
22
23 #[error("{0:?}")]
24 ValidationError(Vec<ValidationError>),
25}