envuse_parser/
syntax_error.rs

1use crate::parser::span::Span;
2
3#[derive(Debug, Clone)]
4pub struct SyntaxError {
5    pub message: String,
6    pub span: Span,
7}
8
9impl std::fmt::Display for SyntaxError {
10    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11        write!(f, "{}", self.message)
12    }
13}
14
15impl std::error::Error for SyntaxError {}
16
17pub trait ErrorWithSpan {
18    fn get_message(&self) -> Span;
19    fn get_span(&self) -> Span;
20}
21
22impl SyntaxError {
23    pub fn new<T: ToString>(message: T, span: Span) -> Self {
24        Self {
25            message: message.to_string(),
26            span,
27        }
28    }
29}