pub trait CacheDb:
Send
+ Sync
+ 'static {
// Required methods
fn clone_boxed(&self) -> Box<dyn CacheDb>;
fn policy<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 CacheKey,
) -> Pin<Box<dyn Future<Output = Option<CachePolicy>> + Send + 'async_trait>>
where 'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait;
fn set_policy<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 CacheKey,
policy: CachePolicy,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
where 'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait;
fn body<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 CacheKey,
) -> Pin<Box<dyn Future<Output = Option<Body>> + Send + 'async_trait>>
where 'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait;
fn set<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 CacheKey,
policy: CachePolicy,
body: Body,
) -> Pin<Box<dyn Future<Output = Option<Body>> + Send + 'async_trait>>
where 'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait;
fn remove<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 CacheKey,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where 'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait;
fn purge<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where 'life0: 'async_trait,
Self: 'async_trait;
fn prune<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where 'life0: 'async_trait,
Self: 'async_trait;
}Expand description
Represents a download cache in a Client.
Cache implementers must store a CachePolicy and Body for a given CacheKey.
Required Methods§
Sourcefn clone_boxed(&self) -> Box<dyn CacheDb>
fn clone_boxed(&self) -> Box<dyn CacheDb>
Dynamic clone.
Sourcefn policy<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 CacheKey,
) -> Pin<Box<dyn Future<Output = Option<CachePolicy>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn policy<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 CacheKey,
) -> Pin<Box<dyn Future<Output = Option<CachePolicy>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Retrieves the cache-policy for the given key.
Sourcefn set_policy<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 CacheKey,
policy: CachePolicy,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn set_policy<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 CacheKey,
policy: CachePolicy,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Replaces the cache-policy for the given key.
Returns false if the entry does not exist.
Sourcefn body<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 CacheKey,
) -> Pin<Box<dyn Future<Output = Option<Body>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn body<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 CacheKey,
) -> Pin<Box<dyn Future<Output = Option<Body>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Read/clone the cached body for the given key.
Sourcefn set<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 CacheKey,
policy: CachePolicy,
body: Body,
) -> Pin<Box<dyn Future<Output = Option<Body>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn set<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 CacheKey,
policy: CachePolicy,
body: Body,
) -> Pin<Box<dyn Future<Output = Option<Body>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Caches the policy and body for the given key.
The body is fully downloaded and stored into the cache, this method can await for the full download
before returning or return immediately with a body that updates as data is cached.
In case of error the cache entry is removed, the returned body may continue downloading data if possible.
In case of a cache entry creation error the input body may be returned if it was not lost in the error.
Sourcefn remove<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 CacheKey,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn remove<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 CacheKey,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Remove cached policy and body for the given key.