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