1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
use {crate::cache::errors::CacheError, failure::Fail, std::fmt};
#[derive(Debug, Fail)]
pub enum ChannelErrorValue {
    #[fail(display = "no app name\n")]
    NoAppName,
    #[fail(display = "no stream name\n")]
    NoStreamName,
    #[fail(display = "no app or stream name\n")]
    NoAppOrStreamName,
    #[fail(display = "exists\n")]
    Exists,
    #[fail(display = "send error\n")]
    SendError,
    #[fail(display = "send video error\n")]
    SendVideoError,
    #[fail(display = "send audio error\n")]
    SendAudioError,
    #[fail(display = "cache error name: {}\n", _0)]
    CacheError(CacheError),
}
#[derive(Debug)]
pub struct ChannelError {
    pub value: ChannelErrorValue,
}

impl fmt::Display for ChannelError {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        fmt::Display::fmt(&self.value, f)
    }
}

impl From<CacheError> for ChannelError {
    fn from(error: CacheError) -> Self {
        ChannelError {
            value: ChannelErrorValue::CacheError(error),
        }
    }
}