oxigdal_cache_advanced/
error.rs1use std::io;
4
5pub type Result<T> = std::result::Result<T, CacheError>;
7
8#[derive(Debug, thiserror::Error)]
10pub enum CacheError {
11 #[error("I/O error: {0}")]
13 Io(#[from] io::Error),
14
15 #[error("Serialization error: {0}")]
17 Serialization(String),
18
19 #[error("Deserialization error: {0}")]
21 Deserialization(String),
22
23 #[error("Compression error: {0}")]
25 Compression(String),
26
27 #[error("Decompression error: {0}")]
29 Decompression(String),
30
31 #[error("Cache tier is full: {0}")]
33 CacheFull(String),
34
35 #[error("Key not found: {0}")]
37 KeyNotFound(String),
38
39 #[error("Invalid configuration: {0}")]
41 InvalidConfig(String),
42
43 #[error("Network error: {0}")]
45 Network(String),
46
47 #[error("Operation timed out")]
49 Timeout,
50
51 #[error("Prediction error: {0}")]
53 Prediction(String),
54
55 #[error("Analytics error: {0}")]
57 Analytics(String),
58
59 #[error("Lock acquisition failed")]
61 LockError,
62
63 #[error("Cache error: {0}")]
65 Other(String),
66}
67
68impl From<serde_json::Error> for CacheError {
69 fn from(err: serde_json::Error) -> Self {
70 CacheError::Serialization(err.to_string())
71 }
72}
73
74impl From<Box<dyn std::error::Error + Send + Sync>> for CacheError {
75 fn from(err: Box<dyn std::error::Error + Send + Sync>) -> Self {
76 CacheError::Other(err.to_string())
77 }
78}