use async_trait::async_trait;
use super::CacheDriver;
use crate::cache::{CacheError, CacheResult};
pub struct Null {}
#[must_use]
pub fn new() -> Box<dyn CacheDriver> {
Box::new(Null {})
}
#[async_trait]
impl CacheDriver for Null {
async fn contains_key(&self, _key: &str) -> CacheResult<bool> {
Err(CacheError::Any(
"Operation not supported by null cache".into(),
))
}
async fn get(&self, _key: &str) -> CacheResult<Option<String>> {
Ok(None)
}
async fn insert(&self, _key: &str, _value: &str) -> CacheResult<()> {
Err(CacheError::Any(
"Operation not supported by null cache".into(),
))
}
async fn remove(&self, _key: &str) -> CacheResult<()> {
Err(CacheError::Any(
"Operation not supported by null cache".into(),
))
}
async fn clear(&self) -> CacheResult<()> {
Err(CacheError::Any(
"Operation not supported by null cache".into(),
))
}
}