1use nom::error::ErrorKind;
2use thiserror::Error as ThisError;
3
4#[derive(ThisError, Debug)]
5pub enum Error {
6 #[error("No pragma found; expected 'docbuf v1;'")]
8 MissingPragma,
9 #[error("Invalid path")]
11 InvalidPath,
12 #[error("IO Error: {0}")]
14 Io(#[from] std::io::Error),
15 #[error("Nom Error: {0}")]
17 Nom(nom::Err<(String, ErrorKind)>),
18 #[error("Token Error: {0}")]
20 Token(String),
21 #[error("Invalid module. There must be one module name declared per file.")]
23 InvalidModule,
24}
25
26impl From<nom::Err<(&str, ErrorKind)>> for Error {
28 fn from(value: nom::Err<(&str, ErrorKind)>) -> Self {
29 Error::Nom(value.to_owned())
30 }
31}