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