Skip to main content

ClientCacheConfig

Struct ClientCacheConfig 

Source
#[non_exhaustive]
pub struct ClientCacheConfig { pub enabled: bool, pub default_ttl: Duration, pub max_ttl: Duration, pub private_partition: Option<String>, pub max_entries: usize, pub serve_stale_on_error: bool, }
Available on crate feature client and (crate features client or server) only.
Expand description

Configuration for the built-in MCP client response cache.

A cache is allocated per client Peer. Public responses may be reused throughout that client connection. Private responses are additionally partitioned by private_partition; changing the partition drops every private entry while preserving public entries.

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.
§enabled: bool

Enables cache reads and writes.

§default_ttl: Duration

TTL used when a backwards-compatible server omits ttlMs.

The default is zero, which leaves such responses immediately stale.

§max_ttl: Duration

Upper bound applied to both server-provided and default TTLs.

§private_partition: Option<String>

Stable opaque identity for the current authorization context.

A single-principal client may leave this unset because each client owns its own in-memory store. Gateways or clients that change principals on an existing connection should set this value and update it whenever the authorization context changes.

§max_entries: usize

Maximum number of responses retained by the in-memory cache.

A value of zero disables the size limit.

§serve_stale_on_error: bool

Serves an expired cached response when a re-fetch fails.

SEP-2549 permits clients to serve stale responses if errors occur while re-fetching (for example, network issues or server downtime). When this is enabled the client retains expired entries so it can fall back to the last known response instead of surfacing the transport or server error. A successful re-fetch always overwrites the stale entry.

Implementations§

Source§

impl ClientCacheConfig

Source

pub fn disabled() -> Self

Returns a configuration that disables all cache reads and writes.

Source

pub fn with_default_ttl(self, default_ttl: Duration) -> Self

Sets the TTL used when a response omits ttlMs.

Source

pub fn with_max_ttl(self, max_ttl: Duration) -> Self

Sets the maximum TTL the client will honour.

Source

pub fn with_private_partition(self, partition: impl Into<String>) -> Self

Sets the stable partition for private responses.

Source

pub fn with_max_entries(self, max_entries: usize) -> Self

Sets the maximum number of retained responses.

Source

pub fn with_serve_stale_on_error(self, serve_stale_on_error: bool) -> Self

Controls whether an expired response may be served when a re-fetch fails.

Trait Implementations§

Source§

impl Clone for ClientCacheConfig

Source§

fn clone(&self) -> ClientCacheConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ClientCacheConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ClientCacheConfig

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Eq for ClientCacheConfig

Source§

impl PartialEq for ClientCacheConfig

Source§

fn eq(&self, other: &ClientCacheConfig) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for ClientCacheConfig

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more