xref: /xiu/protocol/rtmp/src/cache/errors.rs (revision e2687b83)
1*e2687b83SHarlanC use {crate::chunk::errors::PackError, failure::Fail, flv::errors::TagParseError};
201b8b8feSHarlanC 
301b8b8feSHarlanC #[derive(Debug, Fail)]
401b8b8feSHarlanC pub enum CacheErrorValue {
501b8b8feSHarlanC     #[fail(display = "tag parse error")]
601b8b8feSHarlanC     TagParseError(TagParseError),
701b8b8feSHarlanC     #[fail(display = "pack error")]
801b8b8feSHarlanC     PackError(PackError),
901b8b8feSHarlanC }
1001b8b8feSHarlanC 
1101b8b8feSHarlanC pub struct CacheError {
1201b8b8feSHarlanC     pub value: CacheErrorValue,
1301b8b8feSHarlanC }
1401b8b8feSHarlanC 
1501b8b8feSHarlanC impl From<TagParseError> for CacheError {
1601b8b8feSHarlanC     fn from(error: TagParseError) -> Self {
1701b8b8feSHarlanC         CacheError {
1801b8b8feSHarlanC             value: CacheErrorValue::TagParseError(error),
1901b8b8feSHarlanC         }
2001b8b8feSHarlanC     }
2101b8b8feSHarlanC }
2201b8b8feSHarlanC 
2301b8b8feSHarlanC impl From<PackError> for CacheError {
2401b8b8feSHarlanC     fn from(error: PackError) -> Self {
2501b8b8feSHarlanC         CacheError {
2601b8b8feSHarlanC             value: CacheErrorValue::PackError(error),
2701b8b8feSHarlanC         }
2801b8b8feSHarlanC     }
2901b8b8feSHarlanC }
3061bf3e1bSHarlanC 
3161bf3e1bSHarlanC #[derive(Debug, Fail)]
3261bf3e1bSHarlanC pub enum MetadataErrorValue {
3361bf3e1bSHarlanC     #[fail(display = "tag parse error")]
3461bf3e1bSHarlanC     TagParseError(TagParseError),
3561bf3e1bSHarlanC     #[fail(display = "pack error")]
3661bf3e1bSHarlanC     PackError(PackError),
3761bf3e1bSHarlanC }
3861bf3e1bSHarlanC 
3961bf3e1bSHarlanC pub struct MetadataError {
4061bf3e1bSHarlanC     pub value: CacheErrorValue,
4161bf3e1bSHarlanC }
42