xref: /xiu/protocol/rtmp/src/cache/errors.rs (revision 881c8dac)
1*881c8dacSHarlanC use {crate::chunk::errors::PackError, failure::Fail, flvparser::errors::TagParseError, std::fmt};
201b8b8feSHarlanC 
301b8b8feSHarlanC #[derive(Debug, Fail)]
401b8b8feSHarlanC pub enum CacheErrorValue {
5f8169385SHarlanC     #[fail(display = "tag parse error\n")]
601b8b8feSHarlanC     TagParseError(TagParseError),
7f8169385SHarlanC     #[fail(display = "pack error\n")]
801b8b8feSHarlanC     PackError(PackError),
901b8b8feSHarlanC }
1001b8b8feSHarlanC 
11a4485a6eSHarlanC impl fmt::Display for CacheError {
12a4485a6eSHarlanC     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
13a4485a6eSHarlanC         fmt::Display::fmt(&self.value, f)
14a4485a6eSHarlanC     }
15a4485a6eSHarlanC }
16a4485a6eSHarlanC #[derive(Debug)]
1701b8b8feSHarlanC pub struct CacheError {
1801b8b8feSHarlanC     pub value: CacheErrorValue,
1901b8b8feSHarlanC }
2001b8b8feSHarlanC 
2101b8b8feSHarlanC impl From<TagParseError> for CacheError {
2201b8b8feSHarlanC     fn from(error: TagParseError) -> Self {
2301b8b8feSHarlanC         CacheError {
2401b8b8feSHarlanC             value: CacheErrorValue::TagParseError(error),
2501b8b8feSHarlanC         }
2601b8b8feSHarlanC     }
2701b8b8feSHarlanC }
2801b8b8feSHarlanC 
2901b8b8feSHarlanC impl From<PackError> for CacheError {
3001b8b8feSHarlanC     fn from(error: PackError) -> Self {
3101b8b8feSHarlanC         CacheError {
3201b8b8feSHarlanC             value: CacheErrorValue::PackError(error),
3301b8b8feSHarlanC         }
3401b8b8feSHarlanC     }
3501b8b8feSHarlanC }
3661bf3e1bSHarlanC 
3761bf3e1bSHarlanC #[derive(Debug, Fail)]
3861bf3e1bSHarlanC pub enum MetadataErrorValue {
39f8169385SHarlanC     #[fail(display = "tag parse error\n")]
4061bf3e1bSHarlanC     TagParseError(TagParseError),
41f8169385SHarlanC     #[fail(display = "pack error\n")]
4261bf3e1bSHarlanC     PackError(PackError),
4361bf3e1bSHarlanC }
44a4485a6eSHarlanC #[derive(Debug)]
4561bf3e1bSHarlanC pub struct MetadataError {
4661bf3e1bSHarlanC     pub value: CacheErrorValue,
4761bf3e1bSHarlanC }
48