pub struct Config<ReqPred, ResPred, Ext> { /* private fields */ }Expand description
Generic cache configuration.
A protocol-agnostic configuration that holds predicates, extractors, and policy. Use this with any protocol (HTTP, gRPC, etc.) by providing appropriate predicates and extractors.
§Example
use hitbox::{Config, Extractor, KeyParts};
use hitbox::policy::PolicyConfig;
use hitbox::predicate::Neutral;
use std::time::Duration;
let config = Config::builder()
.request_predicate(Neutral::<String>::new())
.response_predicate(Neutral::<String>::new())
.extractor(FixedKeyExtractor)
.policy(PolicyConfig::builder().ttl(Duration::from_secs(60)).build())
.build();Implementations§
Trait Implementations§
Source§impl<Req, Res, ReqPred, ResPred, Ext> CacheConfig<Req, Res> for Config<ReqPred, ResPred, Ext>
impl<Req, Res, ReqPred, ResPred, Ext> CacheConfig<Req, Res> for Config<ReqPred, ResPred, Ext>
Source§type RequestPredicate = Arc<ReqPred>
type RequestPredicate = Arc<ReqPred>
Predicate type for filtering requests.
Source§type ResponsePredicate = Arc<ResPred>
type ResponsePredicate = Arc<ResPred>
Predicate type for filtering responses.
Source§fn request_predicates(
&self,
) -> <Config<ReqPred, ResPred, Ext> as CacheConfig<Req, Res>>::RequestPredicate
fn request_predicates( &self, ) -> <Config<ReqPred, ResPred, Ext> as CacheConfig<Req, Res>>::RequestPredicate
Returns predicates that decide if a request should be cached.
Source§fn response_predicates(
&self,
) -> <Config<ReqPred, ResPred, Ext> as CacheConfig<Req, Res>>::ResponsePredicate
fn response_predicates( &self, ) -> <Config<ReqPred, ResPred, Ext> as CacheConfig<Req, Res>>::ResponsePredicate
Returns predicates that decide if a response should be cached.
Source§fn extractors(
&self,
) -> <Config<ReqPred, ResPred, Ext> as CacheConfig<Req, Res>>::Extractor
fn extractors( &self, ) -> <Config<ReqPred, ResPred, Ext> as CacheConfig<Req, Res>>::Extractor
Returns extractors that generate cache keys from requests.
Source§fn policy(&self) -> &PolicyConfig
fn policy(&self) -> &PolicyConfig
Returns TTL and behavior policy for cached entries.
Auto Trait Implementations§
impl<ReqPred, ResPred, Ext> Freeze for Config<ReqPred, ResPred, Ext>
impl<ReqPred, ResPred, Ext> RefUnwindSafe for Config<ReqPred, ResPred, Ext>
impl<ReqPred, ResPred, Ext> Send for Config<ReqPred, ResPred, Ext>
impl<ReqPred, ResPred, Ext> Sync for Config<ReqPred, ResPred, Ext>
impl<ReqPred, ResPred, Ext> Unpin for Config<ReqPred, ResPred, Ext>
impl<ReqPred, ResPred, Ext> UnwindSafe for Config<ReqPred, ResPred, Ext>
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