Skip to main content

Pending

Struct Pending 

Source
pub(super) struct Pending {
    pub(super) requests: HashMap<Arc<str>, PendingRequest>,
    pub(super) deadlines: DelayQueue<Arc<str>>,
    pub(super) resets: FuturesUnordered<Pin<Box<dyn Future<Output = Option<Arc<str>>> + Send>>>,
}
Expand description

The requests waiting for their second stream, with their deadlines and the watches of their streams. All are bounded by the streams of a connection.

Fields§

§requests: HashMap<Arc<str>, PendingRequest>§deadlines: DelayQueue<Arc<str>>§resets: FuturesUnordered<Pin<Box<dyn Future<Output = Option<Arc<str>>> + Send>>>

The watches of the waiting streams, which let go of a stream once the client reset it. Otherwise the streams of a client which opens and resets them would count against the most streams of its connection until their deadline, as no new stream which could free them gets accepted once there is no room left.

Implementations§

Source§

impl Pending

Source

pub(super) fn new() -> Self

No pending requests.

Source

fn wait( request_id: &Arc<str>, stream: Stream, ) -> (Waiting, Pin<Box<dyn Future<Output = Option<Arc<str>>> + Send>>)

A stream of a request which waits for the other one, and the watch for its reset, see Self::resets.

Source

pub(super) fn get_or_insert( &mut self, request_id: &Arc<str>, ) -> &mut PendingRequest

The request, created with its deadline if it is new.

Source

pub(super) fn remove(&mut self, request_id: &str) -> Option<PendingRequest>

Remove a request, with its deadline.

Source

pub(super) fn remove_reset(&mut self, request_id: &str)

Let go of the streams of a request which the client reset, and of the request once it has no stream left.

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
§

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

§

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.

§

impl<T> FutureExt for T

§

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

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

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

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

impl<T> Instrument for T

§

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

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

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.

§

impl<T> IntoRequest<T> for T

§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
§

impl<L> LayerExt<L> for L

§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in [Layered].
§

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

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

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