Skip to main content

Request

Struct Request 

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

A connection request by the remote endpoint.

Dropping the request rejects it.

Implementations§

Source§

impl Request

Source

pub fn remote_port(&self) -> u32

The remote port number.

Source

pub fn id(&self) -> u32

The remotely provided id.

If no id was provided, this returns the remote port.

Source

pub fn is_wait(&self) -> bool

Indicates whether the handler of the request should wait for a local port to become available, if all are currently in use.

Source

pub fn is_pre_connected(&self) -> bool

Returns whether the remote endpoint provisionally opened this channel.

A pre-connected channel may already carry data even though this request has not yet been accepted. Rejecting the request also rejects that provisional channel.

Source

pub async fn accept_tentatively( self, ) -> Result<(Sender, Receiver, AcceptGuard), TentativeAcceptError>

Tentatively accepts the request, so that it can still be rejected afterwards.

This consumes the request and returns the sender and receiver for the new bidirectional port together with a guard that allows rejecting the connection afterwards. Dropping the guard confirms the connection.

Use this when the decision whether to serve the channel depends on a result that is not available yet, for example the response of another endpoint the channel is forwarded to. Data can be exchanged over the port while the decision is pending.

This is only possible for a pre-connected request, since only its requester is prepared to be told about a rejection after the channel has been established. Otherwise TentativeAcceptError::NotPreConnected is returned and the request is rejected.

Source

pub async fn accept(self) -> Result<(Sender, Receiver), ListenerError>

Accepts the request.

This consumes the request and returns the sender and receiver for the new bidirectional port. It may wait for a local port number when the requester permits waiting.

Source

pub async fn reject(self, no_ports: bool)

Rejects the connect request.

Setting no_ports to true indicates to the remote endpoint that the request was rejected because no local port could be allocated.

Trait Implementations§

Source§

impl Debug for Request

Source§

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

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

impl Drop for Request

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. 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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self> ⓘ

Attaches the current Context to this type, returning a WithContext wrapper. Read more
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> MaybeSend for T
where T: Send + ?Sized,

Source§

impl<T> MaybeSync for T
where T: Sync + ?Sized,

Source§

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

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