webwire_cli/idl/
errors.rs

1use std::fmt;
2
3use crate::idl::common::Span;
4
5#[derive(Debug, PartialEq)]
6pub enum ParseError<'a> {
7    Nom(nom::Err<nom::error::Error<Span<'a>>>),
8    TrailingGarbage(Span<'a>),
9}
10
11impl<'a> fmt::Display for ParseError<'a> {
12    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
13        match self {
14            ParseError::Nom(e) => write!(f, "Parsing failed: {}", e),
15            ParseError::TrailingGarbage(e) => write!(f, "File contains trailing garbage: {}", e),
16        }
17    }
18}
19
20impl std::error::Error for ParseError<'_> {}