1#[derive(Debug)]
2pub enum Error {
4 KeyNotFound(String),
5 IO(std::io::Error),
6 BadDataStructure(serde_json::Error),
7 UnsupportedCommand(String),
8 Unknown(String),
9}
10impl std::error::Error for Error {}
11impl std::fmt::Display for Error {
13 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15 match self {
16 Error::KeyNotFound(key) => write!(f, "Key: \"{}\" Not Found.", key),
17 Error::IO(e) => write!(f, "IO Error:\n {}", e),
18 Error::BadDataStructure(e) => write!(f, "Bad Data Structure: Error:\n {}", e),
19 Error::UnsupportedCommand(cmd) => write!(f, "\"{}\" Is Not A Supported Command.", cmd),
20 Error::Unknown(err_msg) => write!(f, "Unknown Error:\n {}", err_msg),
21 }
22 }
23}
24impl From<std::io::Error> for Error {
25 fn from(err: std::io::Error) -> Self {
26 Error::IO(err)
27 }
28}
29impl From<serde_json::Error> for Error {
30 fn from(err: serde_json::Error) -> Error {
31 Error::BadDataStructure(err)
32 }
33}