sexprs_formatter/
errors.rs1use 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}