use thiserror::Error;
pub type Result<T> = std::result::Result<T, MultilevelError>;
#[derive(Debug, Error)]
pub enum MultilevelError {
#[error("Local cache error: {0}")]
Local(#[from] crate::LocalError),
#[error("Redis error: {0}")]
Redis(#[from] crate::RedisError),
#[error("Redis is currently unavailable due to circuit breaker")]
RedisUnavailable,
#[error("Serialization error: {0}")]
Serialization(#[from] serde_json::Error),
#[error("Multilevel cache already initialized")]
AlreadyInitialized,
}