xref: /xiu/protocol/rtmp/src/cache/errors.rs (revision abfa5883)
1067fdd3cSHarlanC use {
2067fdd3cSHarlanC     crate::{amf0::errors::Amf0WriteError, chunk::errors::PackError},
3067fdd3cSHarlanC     failure::Fail,
4*abfa5883SHarlanC     libflv::errors::FlvDemuxerError,
5067fdd3cSHarlanC     std::fmt,
6067fdd3cSHarlanC };
701b8b8feSHarlanC 
801b8b8feSHarlanC #[derive(Debug, Fail)]
901b8b8feSHarlanC pub enum CacheErrorValue {
1016394c08SHarlanC     #[fail(display = "cache tag parse error\n")]
11*abfa5883SHarlanC     DemuxerError(FlvDemuxerError),
12f8169385SHarlanC     #[fail(display = "pack error\n")]
1301b8b8feSHarlanC     PackError(PackError),
1401b8b8feSHarlanC }
1501b8b8feSHarlanC 
16a4485a6eSHarlanC impl fmt::Display for CacheError {
17a4485a6eSHarlanC     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
18a4485a6eSHarlanC         fmt::Display::fmt(&self.value, f)
19a4485a6eSHarlanC     }
20a4485a6eSHarlanC }
21a4485a6eSHarlanC #[derive(Debug)]
2201b8b8feSHarlanC pub struct CacheError {
2301b8b8feSHarlanC     pub value: CacheErrorValue,
2401b8b8feSHarlanC }
2501b8b8feSHarlanC 
26*abfa5883SHarlanC impl From<FlvDemuxerError> for CacheError {
27*abfa5883SHarlanC     fn from(error: FlvDemuxerError) -> Self {
2801b8b8feSHarlanC         CacheError {
29*abfa5883SHarlanC             value: CacheErrorValue::DemuxerError(error),
3001b8b8feSHarlanC         }
3101b8b8feSHarlanC     }
3201b8b8feSHarlanC }
3301b8b8feSHarlanC 
3401b8b8feSHarlanC impl From<PackError> for CacheError {
3501b8b8feSHarlanC     fn from(error: PackError) -> Self {
3601b8b8feSHarlanC         CacheError {
3701b8b8feSHarlanC             value: CacheErrorValue::PackError(error),
3801b8b8feSHarlanC         }
3901b8b8feSHarlanC     }
4001b8b8feSHarlanC }
4161bf3e1bSHarlanC 
4261bf3e1bSHarlanC #[derive(Debug, Fail)]
4361bf3e1bSHarlanC pub enum MetadataErrorValue {
4416394c08SHarlanC     #[fail(display = "metadata tag parse error\n")]
45*abfa5883SHarlanC     DemuxerError(FlvDemuxerError),
46f8169385SHarlanC     #[fail(display = "pack error\n")]
4761bf3e1bSHarlanC     PackError(PackError),
48067fdd3cSHarlanC     #[fail(display = "amf write error\n")]
49067fdd3cSHarlanC     Amf0WriteError(Amf0WriteError),
5061bf3e1bSHarlanC }
51a4485a6eSHarlanC #[derive(Debug)]
5261bf3e1bSHarlanC pub struct MetadataError {
53067fdd3cSHarlanC     pub value: MetadataErrorValue,
54067fdd3cSHarlanC }
55067fdd3cSHarlanC 
56067fdd3cSHarlanC impl From<Amf0WriteError> for MetadataError {
57067fdd3cSHarlanC     fn from(error: Amf0WriteError) -> Self {
58067fdd3cSHarlanC         MetadataError {
59067fdd3cSHarlanC             value: MetadataErrorValue::Amf0WriteError(error),
60067fdd3cSHarlanC         }
61067fdd3cSHarlanC     }
6261bf3e1bSHarlanC }
63