envuse_parser/errors/
parser_error.rs

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