Struct h2::RecvStream

source ·
pub struct RecvStream {
    inner: FlowControl,
}
Expand description

Receives the body stream and trailers from the remote peer.

A RecvStream is provided by client::ResponseFuture and server::Connection with the received HTTP/2 message head (the response and request head respectively).

A RecvStream instance is used to receive the streaming message body and any trailers from the remote peer. It is also used to manage inbound flow control.

See method level documentation for more details on receiving data. See FlowControl for more details on inbound flow control.

Fields§

§inner: FlowControl

Implementations§

source§

impl RecvStream

source

pub(crate) fn new(inner: FlowControl) -> Self

source

pub async fn data(&mut self) -> Option<Result<Bytes, Error>>

Get the next data frame.

source

pub async fn trailers(&mut self) -> Result<Option<HeaderMap>, Error>

Get optional trailers for this stream.

source

pub fn poll_data( &mut self, cx: &mut Context<'_>, ) -> Poll<Option<Result<Bytes, Error>>>

Poll for the next data frame.

source

pub fn is_end_stream(&self) -> bool

Returns true if the receive half has reached the end of stream.

A return value of true means that calls to poll and poll_trailers will both return None.

source

pub fn flow_control(&mut self) -> &mut FlowControl

Get a mutable reference to this stream’s FlowControl.

It can be used immediately, or cloned to be used later.

source

pub fn stream_id(&self) -> StreamId

Returns the stream ID of this stream.

§Panics

If the lock on the stream store has been poisoned.

Trait Implementations§

source§

impl Debug for RecvStream

source§

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

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

impl Drop for RecvStream

source§

fn drop(&mut self)

Executes the destructor for this type. 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> 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, 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<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