etc/
error.rs

1//! etc errors
2
3use std::{
4    convert::From,
5    error::Error as StdError,
6    fmt,
7    fmt::{Debug, Display},
8    io::Error as IoError,
9};
10
11/// etc Error
12#[derive(Debug)]
13pub enum Error {
14    /// custom error type in etc
15    Custom(String),
16    /// io error transport
17    IO(String),
18}
19
20/// support errors
21impl From<IoError> for Error {
22    fn from(e: IoError) -> Error {
23        Error::IO(e.to_string())
24    }
25}
26
27/// support {} without verbose wrapper
28impl Display for Error {
29    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
30        match self {
31            Error::Custom(s) => write!(f, "{}", s),
32            Error::IO(s) => write!(f, "{}", s),
33        }
34    }
35}
36
37/// implement custom std error trait for Error
38impl StdError for Error {}