#[non_exhaustive]pub struct Cache<S, I> {
pub store: S,
pub issuer: I,
pub skipper: Box<dyn Skipper>,
}Expand description
Cache middleware.
§Example
use std::time::Duration;
use salvo_core::Router;
use salvo_cache::{Cache, MokaStore, RequestIssuer};
let cache = Cache::new(
MokaStore::builder().time_to_live(Duration::from_secs(60)).build(),
RequestIssuer::default(),
);
let router = Router::new().hoop(cache);Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.store: SCache store.
issuer: ICache issuer.
skipper: Box<dyn Skipper>Skipper.
Implementations§
Trait Implementations§
Source§impl<S, I> Handler for Cache<S, I>
impl<S, I> Handler for Cache<S, I>
Source§fn handle<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
req: &'life1 mut Request,
depot: &'life2 mut Depot,
res: &'life3 mut Response,
ctrl: &'life4 mut FlowCtrl,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn handle<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
req: &'life1 mut Request,
depot: &'life2 mut Depot,
res: &'life3 mut Response,
ctrl: &'life4 mut FlowCtrl,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Handle http request.
Source§fn arc(self) -> ArcHandlerwhere
Self: Sized,
fn arc(self) -> ArcHandlerwhere
Self: Sized,
Wrap to
ArcHandler.Source§fn hoop<H>(self, hoop: H) -> HoopedHandler
fn hoop<H>(self, hoop: H) -> HoopedHandler
Hoop this handler with middleware.
Auto Trait Implementations§
impl<S, I> Freeze for Cache<S, I>
impl<S, I> !RefUnwindSafe for Cache<S, I>
impl<S, I> Send for Cache<S, I>
impl<S, I> Sync for Cache<S, I>
impl<S, I> Unpin for Cache<S, I>
impl<S, I> !UnwindSafe for Cache<S, I>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more