kutil_http/cache/implementation/moka/
cache.rs1use super::super::super::{cache::*, key::*, response::*};
2
3use std::{ops::*, sync::*};
4
5pub type MokaCacheImplementation<CacheKeyT = CommonCacheKey> = Arc<moka::future::Cache<CacheKeyT, CachedResponseRef>>;
16
17impl<CacheKeyT> Cache<CacheKeyT> for MokaCacheImplementation<CacheKeyT>
18where
19 CacheKeyT: CacheKey,
20{
21 async fn get(&self, key: &CacheKeyT) -> Option<CachedResponseRef> {
22 self.deref().get(key).await
23 }
24
25 async fn put(&self, key: CacheKeyT, cached_response: CachedResponseRef) {
26 self.deref().insert(key, cached_response).await
27 }
28
29 async fn invalidate(&self, key: &CacheKeyT) {
30 self.deref().invalidate(key).await
31 }
32
33 async fn invalidate_all(&self) {
34 self.deref().invalidate_all()
35 }
36}