xref: /xiu/protocol/rtmp/src/cache/errors.rs (revision 61bf3e1b)
101b8b8feSHarlanC use failure::Fail;
201b8b8feSHarlanC 
301b8b8feSHarlanC use flv::errors::TagParseError;
401b8b8feSHarlanC 
501b8b8feSHarlanC use crate::chunk::errors::PackError;
601b8b8feSHarlanC 
701b8b8feSHarlanC #[derive(Debug, Fail)]
801b8b8feSHarlanC pub enum CacheErrorValue {
901b8b8feSHarlanC     #[fail(display = "tag parse error")]
1001b8b8feSHarlanC     TagParseError(TagParseError),
1101b8b8feSHarlanC     #[fail(display = "pack error")]
1201b8b8feSHarlanC     PackError(PackError),
1301b8b8feSHarlanC }
1401b8b8feSHarlanC 
1501b8b8feSHarlanC pub struct CacheError {
1601b8b8feSHarlanC     pub value: CacheErrorValue,
1701b8b8feSHarlanC }
1801b8b8feSHarlanC 
1901b8b8feSHarlanC impl From<TagParseError> for CacheError {
2001b8b8feSHarlanC     fn from(error: TagParseError) -> Self {
2101b8b8feSHarlanC         CacheError {
2201b8b8feSHarlanC             value: CacheErrorValue::TagParseError(error),
2301b8b8feSHarlanC         }
2401b8b8feSHarlanC     }
2501b8b8feSHarlanC }
2601b8b8feSHarlanC 
2701b8b8feSHarlanC impl From<PackError> for CacheError {
2801b8b8feSHarlanC     fn from(error: PackError) -> Self {
2901b8b8feSHarlanC         CacheError {
3001b8b8feSHarlanC             value: CacheErrorValue::PackError(error),
3101b8b8feSHarlanC         }
3201b8b8feSHarlanC     }
3301b8b8feSHarlanC }
34*61bf3e1bSHarlanC 
35*61bf3e1bSHarlanC #[derive(Debug, Fail)]
36*61bf3e1bSHarlanC pub enum MetadataErrorValue {
37*61bf3e1bSHarlanC     #[fail(display = "tag parse error")]
38*61bf3e1bSHarlanC     TagParseError(TagParseError),
39*61bf3e1bSHarlanC     #[fail(display = "pack error")]
40*61bf3e1bSHarlanC     PackError(PackError),
41*61bf3e1bSHarlanC }
42*61bf3e1bSHarlanC 
43*61bf3e1bSHarlanC pub struct MetadataError {
44*61bf3e1bSHarlanC     pub value: CacheErrorValue,
45*61bf3e1bSHarlanC }
46*61bf3e1bSHarlanC 
47