use thiserror::Error;
#[allow(missing_docs)]
#[derive(Debug, Error)]
#[non_exhaustive]
pub enum Error {
#[error("Incomplete parse error: {input}")]
IncompleteParseError { input: String },
#[error("Parse error: {input}")]
ParseError { input: String },
#[error("IO error: {0}")]
IoError(#[from] std::io::Error),
#[error("UTF8 error: {0}")]
Utf8Error(#[from] std::str::Utf8Error),
#[error("Ron error: {0}")]
RonError(#[from] ron::Error),
#[error("Invalid configuration error: {0}")]
InvalidConfigurationError(String),
}
impl<I> From<nom::Err<nom::error::Error<I>>> for Error
where
I: std::fmt::Display + std::fmt::Debug,
{
fn from(value: nom::Err<nom::error::Error<I>>) -> Self {
Self::ParseError {
input: format!("{}", value),
}
}
}