Skip to main content

ferriorm_parser/
error.rs

1//! Error types for the schema parser and validator.
2//!
3//! [`ParseError`] covers both syntactic failures (grammar mismatches) and
4//! semantic validation errors (unknown types, missing primary keys, etc.).
5//! It implements `miette::Diagnostic` for rich, user-friendly error reporting.
6
7use miette::Diagnostic;
8use thiserror::Error;
9
10#[derive(Debug, Error, Diagnostic)]
11pub enum ParseError {
12    #[error("Syntax error: {0}")]
13    #[diagnostic(code(ferriorm::parser::syntax))]
14    Syntax(String),
15
16    #[error("Validation error: {0}")]
17    #[diagnostic(code(ferriorm::parser::validation))]
18    Validation(String),
19}