1use std::fmt;
3
4#[derive(Debug, Clone)]
6pub enum CacheError {
7 InvalidKey(String),
9 SerializationFailed(String),
11 DeserializationFailed(String),
13 PermissionDenied(String),
15 Other(String),
17}
18
19impl fmt::Display for CacheError {
20 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
21 match self {
22 CacheError::InvalidKey(msg) => write!(f, "无效的 Key: {}", msg),
23 CacheError::SerializationFailed(msg) => write!(f, "序列化失败: {}", msg),
24 CacheError::DeserializationFailed(msg) => write!(f, "反序列化失败: {}", msg),
25 CacheError::PermissionDenied(msg) => write!(f, "权限拒绝: {}", msg),
26 CacheError::Other(msg) => write!(f, "其他错误: {}", msg),
27 }
28 }
29}
30
31impl std::error::Error for CacheError {
32 fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
33 None
34 }
35}