use crate::cache::cache_storage_with_get_size::CacheStorageWithGetSize;
use crate::cache::CacheStorage;
use crate::template::Template;
use std::rc::Rc;
pub struct NullCacheStorage;
impl CacheStorage for NullCacheStorage {
fn get(&mut self, _key: &str) -> Option<Rc<Template>> {
None
}
fn put(&mut self, _key: &str, _value: Rc<Template>) {
}
fn remove(&mut self, _key: &str) {
}
fn clear(&mut self) {
}
}
impl CacheStorageWithGetSize for NullCacheStorage {
fn get_size(&mut self) -> usize {
0
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn null_storage_never_holds() {
let mut s = NullCacheStorage;
assert!(s.get("a.ftl").is_none());
s.put(
"a.ftl",
Rc::new(crate::template::Template::new(
"a.ftl".to_string(),
Vec::new(),
std::collections::HashMap::new(),
std::rc::Rc::new(crate::template::Configuration::default()),
)),
);
assert!(s.get("a.ftl").is_none());
assert_eq!(s.get_size(), 0);
}
}