pub trait Cache:
Debug
+ Send
+ Sync
+ 'static {
// Required methods
fn read(&self, key: &dyn CacheKey) -> Result<Option<Vec<u8>>>;
fn write(&self, key: &dyn CacheKey, value: &[u8]) -> Result<()>;
fn path(&self, key: &dyn CacheKey) -> PathBuf;
fn clear(&self) -> Result<()>;
fn clone_box(&self) -> Box<dyn Cache>;
}