Skip to main content

RequestContext

Struct RequestContext 

Source
pub struct RequestContext {
    pub protocol_version: ProtocolVersion,
    pub client_capabilities: ClientCapabilities,
    pub client_info: Option<Implementation>,
    pub progress_token: Option<ProgressToken>,
    pub log_level: Option<LoggingLevel>,
}
Expand description

Per-request context extracted from RequestMetaObject and carried to every handler.

The 2026-07-28 protocol has no initialize handshake: protocol version, client identity, capabilities and optional progress/log-level hints are declared in _meta on every request. Servers MUST NOT infer these values from prior requests.

Fields§

§protocol_version: ProtocolVersion

The negotiated protocol version for this request.

§client_capabilities: ClientCapabilities

The client’s capabilities (required per spec).

§client_info: Option<Implementation>

The client’s self-reported identity (SHOULD per spec).

§progress_token: Option<ProgressToken>

Opaque token for progress notifications, if the caller requests them.

§log_level: Option<LoggingLevel>

Desired log level for this request (SEP-2577 deprecated; may be absent or ignored).

Implementations§

Source§

impl RequestContext

Source

pub fn from_request_meta(meta: &RequestMetaObject) -> Result<Self, RpcError>

Builds a validated RequestContext from the wire RequestMetaObject.

Returns UnsupportedProtocolVersionError (-32022) when the protocol version is unknown to this implementation or is a known version the server has chosen not to support (see crate::utils::supported_protocol_versions). The error data carries the supported versions and echoes the requested version.

Source

pub fn ensure_capabilities( &self, method: &str, required: &[RequiredClientCapability], ) -> Result<(), RpcError>

Enforce that the client declared every required capability.

Returns Ok(()) when all requirements are met, otherwise an error with code crate::schema::MISSING_REQUIRED_CLIENT_CAPABILITY (-32021) whose data.requiredCapabilities is a ClientCapabilities-shaped object keyed by each missing capability (e.g. { "sampling": {} }).

Source

pub fn client_extensions(&self) -> Option<&BTreeMap<String, JsonObject>>

Returns the client’s declared extensions, if any.

Source

pub fn empty() -> Self

A minimal context for custom/non-standard requests that carry no RequestMetaObject. Uses the current compiled protocol version and empty capabilities.

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<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> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Error = !

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<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