diff --git a/src/config/error.rs b/src/config/error.rs index bfc3d91..e7f7f94 100644 --- a/src/config/error.rs +++ b/src/config/error.rs @@ -7,6 +7,7 @@ use std::{ #[derive(Debug)] pub enum Error { IO(io::Error), + Syntax(sexp::Error), Unknown, } @@ -17,6 +18,7 @@ impl std::error::Error for Error { Some(match &self { Self::IO(io) => io, + Self::Syntax(sy) => sy, _ => return None, }) } @@ -27,7 +29,9 @@ impl std::fmt::Display for Error { match self { Self::IO(io) => write!(f, "i/o error: {}", io), - Self::Unknown => write!(f, "unknown error") + Self::Syntax(sy) => write!(f, "s-expression syntax error: {}", sy), + + _ => write!(f, "unknown error") } } } @@ -40,3 +44,18 @@ impl From for Error } } +impl From for Error +{ + fn from(from: sexp::Error) -> Self + { + Self::Syntax(from) + } +} + +impl From> for Error +{ + fn from(from: Box) -> Self + { + Self::Syntax(*from) + } +}