pub mod discrete_files;
pub mod memory;
pub mod replacement;
pub type KeyIterator<'a, Key> = Box<dyn Iterator<Item = Key> + 'a>;
pub trait CacheStoreStrategy<Key, Value> {
fn get(&self, key: &Key) -> Option<Value>;
fn peek(&self, key: &Key) -> Option<Value>;
fn put(&mut self, key: &Key, value: Value);
fn delete(&mut self, key: &Key) -> bool;
fn flush(&mut self);
fn get_keys(&self) -> KeyIterator<Key>;
fn contains(&self, key: &Key) -> bool;
}