spectacles_brokers/
errors.rs1use std::{
2 error::Error as StdError,
3 fmt::{Display, Formatter, Result as FmtResult},
4 io::Error as IoError,
5};
6
7use failure::{Compat, Fail};
8use lapin_futures_native_tls::{
9 error::Error as LapinTlsError,
10 lapin::error::Error as LapinError,
11};
12
13#[derive(Debug)]
15pub enum Error {
16 Lapin(Compat<LapinError>),
17 LapinTls(Compat<LapinTlsError>),
18 Io(IoError)
19}
20
21impl Display for Error {
22 fn fmt(&self, f: &mut Formatter) -> FmtResult {
23 f.write_str(self.description())
24 }
25}
26
27impl StdError for Error {
28 fn description(&self) -> &str {
29 match self {
30 Error::Lapin(e) => e.description(),
31 Error::LapinTls(e) => e.description(),
32 Error::Io(e) => e.description()
33 }
34 }
35}
36
37impl From<LapinError> for Error {
38 fn from(err: LapinError) -> Self {
39 Error::Lapin(err.compat())
40 }
41}
42
43impl From<LapinTlsError> for Error {
44 fn from(err: LapinTlsError) -> Self {
45 Error::LapinTls(err.compat())
46 }
47}
48
49
50impl From<IoError> for Error {
51 fn from(err: IoError) -> Self {
52 Error::Io(err)
53 }
54}