fabric_client/
error.rs

1#[derive(Debug)]
2/// The different types of error's in Fabric.
3pub 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 {}
11/// Implement display trait for `Error`
12impl std::fmt::Display for Error {
13    /// The error message display format
14    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}