Skip to main content

IncomingBody

Struct IncomingBody 

Source
pub struct IncomingBody<'a, R> { /* private fields */ }
Expand description

A pull body borrowing the connection’s input lane. Returning it as the response body provides streaming echo and managed duplex tunnels without boxing, queueing, spawning, or transferring socket ownership.

Reads are cancellation safe: dropping a pending read, or cancelling its wait, loses no input, and a later read resumes at the same position. This relies on R transferring bytes only within a read_into poll that returns them, as scheduler socket readers and the TLS stream do.

Trait Implementations§

Source§

impl<R> Drop for IncomingBody<'_, R>

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

impl<R: ReadableStream> ReadableBody for IncomingBody<'_, R>

Source§

type Data = Vec<u8>

Application data, without imposing completion-I/O buffer requirements.
Source§

type Error = Error

Source§

fn may_have_trailers(&self) -> bool

Whether this body can emit trailing headers. HTTP/1 needs this before reading to choose chunked framing, even when the data length is known. Returning false promises that no Headers frame will be produced.
Source§

fn is_ready(&self) -> bool

Whether another read can proceed without waiting for produced data. Read more
Source§

fn is_empty(&self) -> bool

Whether no unread payload frames remain. False can mean unknown; an open queue with no frames is not exhausted. This does not suppress read errors.
Source§

fn length(&self) -> Option<u64>

Total representation length, independent of the current read position.
Source§

fn close(&mut self, _: Option<Error>)

Abandon further application reads, optionally reporting their failure. Read more
Source§

async fn read( &mut self, cancellation: &Cancellation, ) -> Result<BodyFrame<Vec<u8>>, Error>

Read one owned frame. Pre-cancellation prevents consumption. The caller stops after frame.is_end(); subsequent reads return BodyFrame::End. Headers occur at most once, after all data. Dropping a pending read is not transport retirement, and must not lose an unreturned queued frame.
Source§

fn is_rewindable(&self) -> bool

Source§

fn rewind(&mut self) -> bool

Restore the read position when supported, reporting success.

Auto Trait Implementations§

§

impl<'a, R> !UnwindSafe for IncomingBody<'a, R>

§

impl<'a, R> Freeze for IncomingBody<'a, R>
where &'a mut RequestReader<R>: Freeze,

§

impl<'a, R> RefUnwindSafe for IncomingBody<'a, R>
where &'a mut RequestReader<R>: RefUnwindSafe,

§

impl<'a, R> Send for IncomingBody<'a, R>
where &'a mut RequestReader<R>: Send,

§

impl<'a, R> Sync for IncomingBody<'a, R>
where &'a mut RequestReader<R>: Sync,

§

impl<'a, R> Unpin for IncomingBody<'a, R>
where &'a mut RequestReader<R>: Unpin,

§

impl<'a, R> UnsafeUnpin for IncomingBody<'a, R>
where &'a mut RequestReader<R>: UnsafeUnpin,

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, 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 = !

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.