Skip to main content

CancellationWireMessage

Enum CancellationWireMessage 

Source
pub enum CancellationWireMessage {
    Legacy2024 {
        sender: CancellationSender,
        params: CancelledParams,
    },
    Modern2026 {
        sender: CancellationSender,
        params: FinalCancelledNotificationParams,
    },
}
Expand description

An era-selected notifications/cancelled JSON-RPC notification.

This is intentionally separate from the broad ClientNotification and ServerNotification unions. Those unions preserve schema-open final extension members for generic routing. This codec is the boundary at which FastMCP assigns cancellation semantics without inferring meaning from schema-open extension members.

The codec is for JSON-RPC transports such as stdio. Modern Streamable HTTP cancellation is a response-stream close and must not be translated into a second notifications/cancelled POST by a transport integration.

Variants§

§

Legacy2024

Exact MCP 2024-11-05 cancellation parameters.

Fields

§sender: CancellationSender

Peer that originated the notification.

§params: CancelledParams

Closed legacy cancellation payload.

§

Modern2026

MCP 2026-07-28 cancellation parameters.

Notification metadata is optional for either sender and is never synthesized by this codec.

Fields

§sender: CancellationSender

Peer that originated the notification.

§params: FinalCancelledNotificationParams

Final cancellation payload.

Implementations§

Source§

impl CancellationWireMessage

Source

pub fn decode( era: ProtocolEra, sender: CancellationSender, request: &JsonRpcRequest, ) -> Result<Self, CancellationWireCodecError>

Decodes one cancellation notification using the already-negotiated era and the peer that supplied the frame.

This method deliberately does not infer an era from optional fields. The caller must negotiate once before decoding control traffic.

Source

pub const fn era(&self) -> ProtocolEra

Returns the exact selected protocol era.

Source

pub const fn sender(&self) -> CancellationSender

Returns the peer that originated this cancellation notification.

Source

pub fn encode(&self) -> Result<JsonRpcRequest, CancellationWireCodecError>

Encodes this typed cancellation as an ID-free JSON-RPC notification.

Local construction receives the same era-specific validation as peer ingress. A schema-open extension never acquires cancellation semantics through this codec.

Trait Implementations§

Source§

impl Clone for CancellationWireMessage

Source§

fn clone(&self) -> CancellationWireMessage

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 CancellationWireMessage

Source§

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

Formats the value using the given formatter. Read more

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> 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: NoopSpan) -> Self

Instruments this future with a span (no-op when disabled).
Source§

fn in_current_span(self) -> Self

Instruments this future with the current span (no-op when disabled).
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> 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