pub struct IRCache {
pub node_type: &'static str,
pub source_line: u32,
pub source_column: u32,
pub name: String,
pub backend: String,
pub ttl: Option<String>,
pub key_params: Vec<String>,
pub default_policy: bool,
pub apply_to_effects: Vec<String>,
pub invalidate_on: Vec<String>,
}Expand description
§Fase 85.b — compiled cache policy. The checker (§85.c) re-derives the
same laws at the deploy gate (CacheSoundness), so an IR that reaches the
runtime is already proven sound (one default max, non-pure ⇒ finite ttl,
references resolve). Every optional field is skip_serializing_if so a
bundle using cache only pays IR bytes for what it declares, and a bundle
with no cache never emits a caches key (IR-SHA stable, §76.d).
Fields§
§node_type: &'static str§source_line: u32§source_column: u32§name: String§backend: String"redis" | "in_process"; empty ⇒ runtime default (in_process).
ttl: Option<String>Duration literal ("10s") — same string-carries-the-unit convention as
cors.max_age. None ⇒ cache-forever (sound only for a pure cache).
key_params: Vec<String>The parameter-name subset forming the key; empty ⇒ all bound params.
default_policy: booltrue ⇒ auto-covers every eligible tool (at most one per module).
apply_to_effects: Vec<String>Effect classes this cache memoises; empty ⇒ ["pure"].
invalidate_on: Vec<String>Channel names whose emit flushes this cache’s namespace.
Trait Implementations§
Source§impl Serialize for IRCache
impl Serialize for IRCache
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for IRCache
impl RefUnwindSafe for IRCache
impl Send for IRCache
impl Sync for IRCache
impl Unpin for IRCache
impl UnsafeUnpin for IRCache
impl UnwindSafe for IRCache
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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