use {crate::chunk::errors::PackError, failure::Fail, flv::errors::TagParseError}; #[derive(Debug, Fail)] pub enum CacheErrorValue { #[fail(display = "tag parse error")] TagParseError(TagParseError), #[fail(display = "pack error")] PackError(PackError), } pub struct CacheError { pub value: CacheErrorValue, } impl From for CacheError { fn from(error: TagParseError) -> Self { CacheError { value: CacheErrorValue::TagParseError(error), } } } impl From for CacheError { fn from(error: PackError) -> Self { CacheError { value: CacheErrorValue::PackError(error), } } } #[derive(Debug, Fail)] pub enum MetadataErrorValue { #[fail(display = "tag parse error")] TagParseError(TagParseError), #[fail(display = "pack error")] PackError(PackError), } pub struct MetadataError { pub value: CacheErrorValue, }