sexprs_formatter/
errors.rs

1use sexprs_util::{impl_error, Traceback};
2
3#[derive(Debug, Clone, PartialEq, Eq, Copy)]
4pub enum ErrorType {
5    IOError,
6    SyntectError,
7    FormatError,
8    SynError,
9}
10impl std::fmt::Display for ErrorType {
11    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
12        write!(
13            f,
14            "{}",
15            match self {
16                Self::IOError => "IOError",
17                Self::SyntectError => "SyntectError",
18                Self::FormatError => "FormatError",
19                Self::SynError => "SynError",
20            }
21        )
22    }
23}
24impl_error!(Error, ErrorType);
25impl From<std::io::Error> for Error {
26    fn from(e: std::io::Error) -> Self {
27        Error::new(e, ErrorType::IOError)
28    }
29}
30impl From<iocore::Error> for Error {
31    fn from(e: iocore::Error) -> Self {
32        Error::new(e, ErrorType::IOError)
33    }
34}
35
36impl From<syntect::LoadingError> for Error {
37    fn from(e: syntect::LoadingError) -> Self {
38        Error::new(e, ErrorType::SyntectError)
39    }
40}
41impl From<syntect::Error> for Error {
42    fn from(e: syntect::Error) -> Self {
43        Error::new(e, ErrorType::SyntectError)
44    }
45}
46impl From<syn::Error> for Error {
47    fn from(e: syn::Error) -> Self {
48        Error::new(e, ErrorType::SynError)
49    }
50}