1*067fdd3cSHarlanC use { 2*067fdd3cSHarlanC crate::{amf0::errors::Amf0WriteError, chunk::errors::PackError}, 3*067fdd3cSHarlanC failure::Fail, 4*067fdd3cSHarlanC flvparser::errors::TagParseError, 5*067fdd3cSHarlanC std::fmt, 6*067fdd3cSHarlanC }; 701b8b8feSHarlanC 801b8b8feSHarlanC #[derive(Debug, Fail)] 901b8b8feSHarlanC pub enum CacheErrorValue { 1016394c08SHarlanC #[fail(display = "cache tag parse error\n")] 1101b8b8feSHarlanC TagParseError(TagParseError), 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 2601b8b8feSHarlanC impl From<TagParseError> for CacheError { 2701b8b8feSHarlanC fn from(error: TagParseError) -> Self { 2801b8b8feSHarlanC CacheError { 2901b8b8feSHarlanC value: CacheErrorValue::TagParseError(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")] 4561bf3e1bSHarlanC TagParseError(TagParseError), 46f8169385SHarlanC #[fail(display = "pack error\n")] 4761bf3e1bSHarlanC PackError(PackError), 48*067fdd3cSHarlanC #[fail(display = "amf write error\n")] 49*067fdd3cSHarlanC Amf0WriteError(Amf0WriteError), 5061bf3e1bSHarlanC } 51a4485a6eSHarlanC #[derive(Debug)] 5261bf3e1bSHarlanC pub struct MetadataError { 53*067fdd3cSHarlanC pub value: MetadataErrorValue, 54*067fdd3cSHarlanC } 55*067fdd3cSHarlanC 56*067fdd3cSHarlanC impl From<Amf0WriteError> for MetadataError { 57*067fdd3cSHarlanC fn from(error: Amf0WriteError) -> Self { 58*067fdd3cSHarlanC MetadataError { 59*067fdd3cSHarlanC value: MetadataErrorValue::Amf0WriteError(error), 60*067fdd3cSHarlanC } 61*067fdd3cSHarlanC } 6261bf3e1bSHarlanC } 63