envuse_parser/
syntax_error.rs1use 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}