1 use {
2     crate::amf0::errors::Amf0WriteError,
3     failure::{Backtrace, Fail},
4     bytesio::bytes_errors::{BytesReadError, BytesWriteError},
5     std::fmt,
6 };
7 
8 #[derive(Debug)]
9 pub struct EventMessagesError {
10     pub value: EventMessagesErrorValue,
11 }
12 
13 #[derive(Debug, Fail)]
14 pub enum EventMessagesErrorValue {
15     #[fail(display = "amf0 write error: {}", _0)]
16     Amf0WriteError(Amf0WriteError),
17     #[fail(display = "bytes write error: {}", _0)]
18     BytesWriteError(BytesWriteError),
19     #[fail(display = "bytes read error: {}", _0)]
20     BytesReadError(BytesReadError),
21     #[fail(display = "unknow event message type")]
22     UnknowEventMessageType,
23 }
24 
25 impl From<Amf0WriteError> for EventMessagesError {
from(error: Amf0WriteError) -> Self26     fn from(error: Amf0WriteError) -> Self {
27         EventMessagesError {
28             value: EventMessagesErrorValue::Amf0WriteError(error),
29         }
30     }
31 }
32 
33 impl From<BytesWriteError> for EventMessagesError {
from(error: BytesWriteError) -> Self34     fn from(error: BytesWriteError) -> Self {
35         EventMessagesError {
36             value: EventMessagesErrorValue::BytesWriteError(error),
37         }
38     }
39 }
40 
41 impl From<BytesReadError> for EventMessagesError {
from(error: BytesReadError) -> Self42     fn from(error: BytesReadError) -> Self {
43         EventMessagesError {
44             value: EventMessagesErrorValue::BytesReadError(error),
45         }
46     }
47 }
48 
49 impl fmt::Display for EventMessagesError {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result50     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
51         fmt::Display::fmt(&self.value, f)
52     }
53 }
54 
55 impl Fail for EventMessagesError {
cause(&self) -> Option<&dyn Fail>56     fn cause(&self) -> Option<&dyn Fail> {
57         self.value.cause()
58     }
59 
backtrace(&self) -> Option<&Backtrace>60     fn backtrace(&self) -> Option<&Backtrace> {
61         self.value.backtrace()
62     }
63 }
64