xref: /xiu/protocol/rtmp/src/cache/errors.rs (revision 01b8b8fe)
1*01b8b8feSHarlanC use failure::Fail;
2*01b8b8feSHarlanC 
3*01b8b8feSHarlanC use flv::errors::TagParseError;
4*01b8b8feSHarlanC 
5*01b8b8feSHarlanC use crate::chunk::errors::PackError;
6*01b8b8feSHarlanC 
7*01b8b8feSHarlanC #[derive(Debug, Fail)]
8*01b8b8feSHarlanC pub enum CacheErrorValue {
9*01b8b8feSHarlanC     #[fail(display = "tag parse error")]
10*01b8b8feSHarlanC     TagParseError(TagParseError),
11*01b8b8feSHarlanC     #[fail(display = "pack error")]
12*01b8b8feSHarlanC     PackError(PackError),
13*01b8b8feSHarlanC }
14*01b8b8feSHarlanC 
15*01b8b8feSHarlanC pub struct CacheError {
16*01b8b8feSHarlanC     pub value: CacheErrorValue,
17*01b8b8feSHarlanC }
18*01b8b8feSHarlanC 
19*01b8b8feSHarlanC impl From<TagParseError> for CacheError {
20*01b8b8feSHarlanC     fn from(error: TagParseError) -> Self {
21*01b8b8feSHarlanC         CacheError {
22*01b8b8feSHarlanC             value: CacheErrorValue::TagParseError(error),
23*01b8b8feSHarlanC         }
24*01b8b8feSHarlanC     }
25*01b8b8feSHarlanC }
26*01b8b8feSHarlanC 
27*01b8b8feSHarlanC impl From<PackError> for CacheError {
28*01b8b8feSHarlanC     fn from(error: PackError) -> Self {
29*01b8b8feSHarlanC         CacheError {
30*01b8b8feSHarlanC             value: CacheErrorValue::PackError(error),
31*01b8b8feSHarlanC         }
32*01b8b8feSHarlanC     }
33*01b8b8feSHarlanC }
34