1use thiserror::Error;
4
5pub type CacheResult<T> = Result<T, CacheError>;
7
8#[derive(Debug, Error)]
10pub enum CacheError {
11 #[cfg(feature = "redis")]
13 #[error("Redis error: {0}")]
14 Redis(#[from] redis::RedisError),
15
16 #[cfg(feature = "memcached")]
18 #[error("Memcached error: {0}")]
19 Memcached(#[from] memcache::MemcacheError),
20
21 #[error("Serialization error: {0}")]
23 Serialization(String),
24
25 #[error("Deserialization error: {0}")]
27 Deserialization(String),
28
29 #[error("Key not found: {0}")]
31 NotFound(String),
32
33 #[error("Connection error: {0}")]
35 Connection(String),
36
37 #[error("Configuration error: {0}")]
39 Config(String),
40
41 #[error("Invalid URL: {0}")]
43 InvalidUrl(String),
44
45 #[error("Operation timeout")]
47 Timeout,
48
49 #[error("Cache error: {0}")]
51 Other(String),
52}