pub trait CacheOps {
// Required methods
fn get(&self, contract: &[u8], key: &[u8]) -> Result<Option<Vec<u8>>>;
fn set(&self, contract: &[u8], key: &[u8], value: &[u8]) -> Result<()>;
fn set_expiration(
&self,
contract: &[u8],
key: &[u8],
expire_after_secs: u64,
) -> Result<()>;
fn remove(&self, contract: &[u8], key: &[u8]) -> Result<Option<Vec<u8>>>;
}