pub struct CompiledRouteCache {
pub ttl: Duration,
pub stale_while_revalidate: Duration,
pub max_body_bytes: u64,
pub vary: Vec<String>,
pub coalesce_wait: Option<Duration>,
}Expand description
The compiled per-route cache policy (DW-037): validated values
resolved into the exact durations, bounds, and the EFFECTIVE vary
set (configured entries plus the policy-derived Accept/Origin
folds), lowercased and in deterministic order. Built once at
snapshot compile (RouteTable), never per request.
Fields§
§ttl: DurationFreshness lifetime.
stale_while_revalidate: DurationStale-while-revalidate window past expiry (0 = disabled).
max_body_bytes: u64Per-entry body cap.
vary: Vec<String>The effective vary set: lowercased header names, deduplicated,
in deterministic order (configured order, then the derived
folds). This is exactly the set of request headers the key folds
in, and exactly what a stored response’s Vary must be a
subset of.
coalesce_wait: Option<Duration>Follower wait bound for request coalescing (DW-038). None: coalescing disabled on this route (the default).
Implementations§
Source§impl CompiledRouteCache
impl CompiledRouteCache
Sourcepub fn compile(cache: &RouteCache, accept: bool, cors: bool) -> Self
pub fn compile(cache: &RouteCache, accept: bool, cors: bool) -> Self
Compile the route’s cache block, folding in the policy-derived
vary dimensions: accept (Some when the route matches on
match.accept, DW-048) and origin (the route carries a CORS
policy, DW-027). Validation has already run, so the configured
vary list is well-formed; the folds deduplicate against it.
Trait Implementations§
Source§impl Clone for CompiledRouteCache
impl Clone for CompiledRouteCache
Source§fn clone(&self) -> CompiledRouteCache
fn clone(&self) -> CompiledRouteCache
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CompiledRouteCache
impl Debug for CompiledRouteCache
Source§impl PartialEq for CompiledRouteCache
impl PartialEq for CompiledRouteCache
impl StructuralPartialEq for CompiledRouteCache
Auto Trait Implementations§
impl Freeze for CompiledRouteCache
impl RefUnwindSafe for CompiledRouteCache
impl Send for CompiledRouteCache
impl Sync for CompiledRouteCache
impl Unpin for CompiledRouteCache
impl UnwindSafe for CompiledRouteCache
Blanket Implementations§
§impl<T> AnyExt for T
impl<T> AnyExt for T
§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind reference§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable reference§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointer§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointer§fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
T behind Box pointer§fn downcast_move<T>(this: Self) -> Option<T>
fn downcast_move<T>(this: Self) -> Option<T>
Self to T,
useful only in generic context as a workaround for specializationSource§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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
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>
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 more