xref: /xiu/protocol/rtmp/src/utils/errors.rs (revision 69de9bbd)
1c8d4d932SHarlan use {
2c8d4d932SHarlan     failure::{Backtrace, Fail},
3c8d4d932SHarlan     std::fmt,
4c8d4d932SHarlan };
5c8d4d932SHarlan 
6c8d4d932SHarlan #[derive(Debug)]
7c8d4d932SHarlan pub struct RtmpUrlParseError {
8c8d4d932SHarlan     pub value: RtmpUrlParseErrorValue,
9c8d4d932SHarlan }
10c8d4d932SHarlan #[derive(Debug, Fail)]
11c8d4d932SHarlan pub enum RtmpUrlParseErrorValue {
12*69de9bbdSHarlanC     #[fail(display = "The url is not valid")]
13c8d4d932SHarlan     Notvalid,
14c8d4d932SHarlan }
15c8d4d932SHarlan 
16c8d4d932SHarlan impl fmt::Display for RtmpUrlParseError {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result17c8d4d932SHarlan     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
18c8d4d932SHarlan         fmt::Display::fmt(&self.value, f)
19c8d4d932SHarlan     }
20c8d4d932SHarlan }
21c8d4d932SHarlan 
22c8d4d932SHarlan impl Fail for RtmpUrlParseError {
cause(&self) -> Option<&dyn Fail>23c8d4d932SHarlan     fn cause(&self) -> Option<&dyn Fail> {
24c8d4d932SHarlan         self.value.cause()
25c8d4d932SHarlan     }
26c8d4d932SHarlan 
backtrace(&self) -> Option<&Backtrace>27c8d4d932SHarlan     fn backtrace(&self) -> Option<&Backtrace> {
28c8d4d932SHarlan         self.value.backtrace()
29c8d4d932SHarlan     }
30c8d4d932SHarlan }
31