Skip to main content

RequestCancellationHandle

Struct RequestCancellationHandle 

Source
pub struct RequestCancellationHandle { /* private fields */ }
Expand description

Explicit cancellation control for one outgoing request.

Obtain this handle from PreparedRequest::cancellation_handle or SentRequest::cancellation_handle before consuming the request. It retains neither the response consumer nor application callback, so cancellation can be requested without discarding the eventual response. It does not keep the connection driver or response consumer alive, or abort local callback work.

Clones share the request’s cancellation state with SentRequest::cancel, forwarded cancellation, and request-drop automatic cancellation. At most one cancellation notification is attempted, with the original peer and proxy wrapping. Dropping this handle neither cancels the request nor disables its automatic cancellation.

Cancellation before publication is a no-op and is not remembered for later publication. A call racing publication may also be a no-op; call after the publishing method returns to target a pending request. Once the SDK routes a response or fails the request, subsequent cancellation calls are no-ops, even if its callback has not yet run. Detaching the request suppresses only automatic cancellation; retained handles can still explicitly cancel it.

This controls outgoing requests, unlike RequestCancellation, which observes a peer’s cancellation of an incoming request.

Implementations§

Source§

impl RequestCancellationHandle

Source

pub fn cancel(&self) -> Result<(), Error>

Ask the peer to cancel this request without discarding its response.

Cancellation is cooperative: the peer may respond normally or with a cancellation error. Repeated calls, including calls through other clones or the original request, return Ok(()) without sending another notification. Calls before publication or after settlement are no-ops. An attempt begun before settlement may still enqueue afterward.

Ok(()) means this call encountered no immediate error, not that a notification was sent or the peer stopped work. This method does not wait for transmission or acknowledgment.

§Errors

Only the call that attempts to send reports serialization or enqueue failure. A failed send is not retried by later cancellation calls.

Trait Implementations§

Source§

impl Clone for RequestCancellationHandle

Source§

fn clone(&self) -> Self

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 RequestCancellationHandle

Source§

fn fmt(&self, formatter: &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<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<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> IntoMaybeUndefined<T> for T

Source§

fn into_maybe_undefined(self) -> MaybeUndefined<T>

Converts this value into a three-state builder argument.
Source§

impl<T> IntoOption<T> for T

Source§

fn into_option(self) -> Option<T>

Converts this value into an optional builder argument.
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 = !

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

fn try_from(value: U) -> Result<T, !>

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