101b8b8feSHarlanC use failure::Fail; 201b8b8feSHarlanC 301b8b8feSHarlanC use flv::errors::TagParseError; 401b8b8feSHarlanC 501b8b8feSHarlanC use crate::chunk::errors::PackError; 601b8b8feSHarlanC 701b8b8feSHarlanC #[derive(Debug, Fail)] 801b8b8feSHarlanC pub enum CacheErrorValue { 901b8b8feSHarlanC #[fail(display = "tag parse error")] 1001b8b8feSHarlanC TagParseError(TagParseError), 1101b8b8feSHarlanC #[fail(display = "pack error")] 1201b8b8feSHarlanC PackError(PackError), 1301b8b8feSHarlanC } 1401b8b8feSHarlanC 1501b8b8feSHarlanC pub struct CacheError { 1601b8b8feSHarlanC pub value: CacheErrorValue, 1701b8b8feSHarlanC } 1801b8b8feSHarlanC 1901b8b8feSHarlanC impl From<TagParseError> for CacheError { 2001b8b8feSHarlanC fn from(error: TagParseError) -> Self { 2101b8b8feSHarlanC CacheError { 2201b8b8feSHarlanC value: CacheErrorValue::TagParseError(error), 2301b8b8feSHarlanC } 2401b8b8feSHarlanC } 2501b8b8feSHarlanC } 2601b8b8feSHarlanC 2701b8b8feSHarlanC impl From<PackError> for CacheError { 2801b8b8feSHarlanC fn from(error: PackError) -> Self { 2901b8b8feSHarlanC CacheError { 3001b8b8feSHarlanC value: CacheErrorValue::PackError(error), 3101b8b8feSHarlanC } 3201b8b8feSHarlanC } 3301b8b8feSHarlanC } 34*61bf3e1bSHarlanC 35*61bf3e1bSHarlanC #[derive(Debug, Fail)] 36*61bf3e1bSHarlanC pub enum MetadataErrorValue { 37*61bf3e1bSHarlanC #[fail(display = "tag parse error")] 38*61bf3e1bSHarlanC TagParseError(TagParseError), 39*61bf3e1bSHarlanC #[fail(display = "pack error")] 40*61bf3e1bSHarlanC PackError(PackError), 41*61bf3e1bSHarlanC } 42*61bf3e1bSHarlanC 43*61bf3e1bSHarlanC pub struct MetadataError { 44*61bf3e1bSHarlanC pub value: CacheErrorValue, 45*61bf3e1bSHarlanC } 46*61bf3e1bSHarlanC 47