xref: /xiu/library/streamhub/src/errors.rs (revision b36cf5da)
1 use bytesio::bytes_errors::BytesReadError;
2 use bytesio::bytes_errors::BytesWriteError;
3 
4 use {failure::Fail, std::fmt};
5 #[derive(Debug, Fail)]
6 pub enum ChannelErrorValue {
7     #[fail(display = "no app name\n")]
8     NoAppName,
9     #[fail(display = "no stream name\n")]
10     NoStreamName,
11     #[fail(display = "no app or stream name\n")]
12     NoAppOrStreamName,
13     #[fail(display = "exists\n")]
14     Exists,
15     #[fail(display = "send error\n")]
16     SendError,
17     #[fail(display = "send video error\n")]
18     SendVideoError,
19     #[fail(display = "send audio error\n")]
20     SendAudioError,
21     #[fail(display = "bytes read error\n")]
22     BytesReadError(BytesReadError),
23     #[fail(display = "bytes write error\n")]
24     BytesWriteError(BytesWriteError),
25 }
26 #[derive(Debug)]
27 pub struct ChannelError {
28     pub value: ChannelErrorValue,
29 }
30 
31 impl fmt::Display for ChannelError {
32     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
33         fmt::Display::fmt(&self.value, f)
34     }
35 }
36 
37 impl From<BytesReadError> for ChannelError {
38     fn from(error: BytesReadError) -> Self {
39         ChannelError {
40             value: ChannelErrorValue::BytesReadError(error),
41         }
42     }
43 }
44 
45 impl From<BytesWriteError> for ChannelError {
46     fn from(error: BytesWriteError) -> Self {
47         ChannelError {
48             value: ChannelErrorValue::BytesWriteError(error),
49         }
50     }
51 }
52 
53 // impl From<CacheError> for ChannelError {
54 //     fn from(error: CacheError) -> Self {
55 //         ChannelError {
56 //             value: ChannelErrorValue::CacheError(error),
57 //         }
58 //     }
59 // }
60