1*881c8dacSHarlanC use {crate::chunk::errors::PackError, failure::Fail, flvparser::errors::TagParseError, std::fmt}; 201b8b8feSHarlanC 301b8b8feSHarlanC #[derive(Debug, Fail)] 401b8b8feSHarlanC pub enum CacheErrorValue { 5f8169385SHarlanC #[fail(display = "tag parse error\n")] 601b8b8feSHarlanC TagParseError(TagParseError), 7f8169385SHarlanC #[fail(display = "pack error\n")] 801b8b8feSHarlanC PackError(PackError), 901b8b8feSHarlanC } 1001b8b8feSHarlanC 11a4485a6eSHarlanC impl fmt::Display for CacheError { 12a4485a6eSHarlanC fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 13a4485a6eSHarlanC fmt::Display::fmt(&self.value, f) 14a4485a6eSHarlanC } 15a4485a6eSHarlanC } 16a4485a6eSHarlanC #[derive(Debug)] 1701b8b8feSHarlanC pub struct CacheError { 1801b8b8feSHarlanC pub value: CacheErrorValue, 1901b8b8feSHarlanC } 2001b8b8feSHarlanC 2101b8b8feSHarlanC impl From<TagParseError> for CacheError { 2201b8b8feSHarlanC fn from(error: TagParseError) -> Self { 2301b8b8feSHarlanC CacheError { 2401b8b8feSHarlanC value: CacheErrorValue::TagParseError(error), 2501b8b8feSHarlanC } 2601b8b8feSHarlanC } 2701b8b8feSHarlanC } 2801b8b8feSHarlanC 2901b8b8feSHarlanC impl From<PackError> for CacheError { 3001b8b8feSHarlanC fn from(error: PackError) -> Self { 3101b8b8feSHarlanC CacheError { 3201b8b8feSHarlanC value: CacheErrorValue::PackError(error), 3301b8b8feSHarlanC } 3401b8b8feSHarlanC } 3501b8b8feSHarlanC } 3661bf3e1bSHarlanC 3761bf3e1bSHarlanC #[derive(Debug, Fail)] 3861bf3e1bSHarlanC pub enum MetadataErrorValue { 39f8169385SHarlanC #[fail(display = "tag parse error\n")] 4061bf3e1bSHarlanC TagParseError(TagParseError), 41f8169385SHarlanC #[fail(display = "pack error\n")] 4261bf3e1bSHarlanC PackError(PackError), 4361bf3e1bSHarlanC } 44a4485a6eSHarlanC #[derive(Debug)] 4561bf3e1bSHarlanC pub struct MetadataError { 4661bf3e1bSHarlanC pub value: CacheErrorValue, 4761bf3e1bSHarlanC } 48