diameter_interface/
errors.rs

1use std::fmt;
2use std::fmt::{Debug, Display, Formatter};
3
4#[derive(Debug)]
5pub enum Error {
6    ClientError(&'static str),
7    IoError(std::io::Error),
8    EncodeError(&'static str),
9    DecodeError(&'static str),
10}
11
12pub type DiameterResult<T> = Result<T, Error>;
13
14impl Display for Error {
15    fn fmt(&self, f: &mut Formatter) -> fmt::Result {
16        match self {
17            Error::ClientError(msg) => write!(f, "{}", msg),
18            Error::IoError(e) => write!(f, "{}", e),
19            Error::EncodeError(msg) => write!(f, "{}", msg),
20            Error::DecodeError(msg) => write!(f, "{}", msg),
21        }
22    }
23}
24
25impl std::error::Error for Error {}
26
27impl From<std::io::Error> for Error {
28    fn from(err: std::io::Error) -> Self {
29        Error::IoError(err)
30    }
31}