pub struct Cache<K: KeyExtractor, B: Bypasser = NoopBypasser> { /* private fields */ }Expand description
HTTP Cache
Implementations§
Source§impl<K: KeyExtractor + 'static, B: Bypasser + 'static> Cache<K, B>
impl<K: KeyExtractor + 'static, B: Bypasser + 'static> Cache<K, B>
Sourcepub fn new(
opts: Opts,
key_extractor: K,
bypasser: Option<B>,
registry: &Registry,
) -> Result<Self, CacheError>
pub fn new( opts: Opts, key_extractor: K, bypasser: Option<B>, registry: &Registry, ) -> Result<Self, CacheError>
Create new Cache
Sourcepub fn get(&self, key: &K::Key, now: Instant, beta: f64) -> Option<Response>
pub fn get(&self, key: &K::Key, now: Instant, beta: f64) -> Option<Response>
Looks up the given entry
Sourcepub fn insert(
&self,
key: K::Key,
now: Instant,
ttl: Duration,
delta: Duration,
response: Response<Bytes>,
)
pub fn insert( &self, key: K::Key, now: Instant, ttl: Duration, delta: Duration, response: Response<Bytes>, )
Insert a new entry into the cache
Sourcepub async fn process_request(
&self,
request: Request,
next: Next,
) -> Result<Response, CacheError>
pub async fn process_request( &self, request: Request, next: Next, ) -> Result<Response, CacheError>
Process the HTTP request
Trait Implementations§
Auto Trait Implementations§
impl<K, B> Freeze for Cache<K, B>
impl<K, B = NoopBypasser> !RefUnwindSafe for Cache<K, B>
impl<K, B> Send for Cache<K, B>
impl<K, B> Sync for Cache<K, B>
impl<K, B> Unpin for Cache<K, B>
impl<K, B = NoopBypasser> !UnwindSafe for Cache<K, B>
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request