Struct ReqBodySender

Source
pub struct ReqBodySender<'conn, S>
where S: Stream + Unpin,
{ /* private fields */ }
Expand description

ReqBodySender handles reading body chunks from the raw payload stream.

This component runs concurrently with request processing to ensure:

  1. Body chunks are available when the handler needs them
  2. All body data is properly drained from the connection
  3. Resources are cleaned up appropriately

The sender maintains an EOF flag to track when the complete body has been read, which is crucial for proper connection handling.

Implementations§

Source§

impl<S> ReqBodySender<'_, S>

Source

pub async fn send_body(&mut self) -> Result<(), ParseError>

Streams body chunks from payload stream to ReqBody consumer.

This method runs in a loop, responding to chunk requests from the ReqBody until either:

  • The complete body is streamed (EOF)
  • An error occurs during streaming
Source

pub async fn skip_body(&mut self)

Drains any remaining body chunks from the payload stream.

This is critical for maintaining HTTP protocol correctness when:

  • The handler doesn’t read the complete body
  • The connection will be reused for future requests

It ensures the connection is in a clean state for the next request.

Auto Trait Implementations§

§

impl<'conn, S> Freeze for ReqBodySender<'conn, S>

§

impl<'conn, S> !RefUnwindSafe for ReqBodySender<'conn, S>

§

impl<'conn, S> Send for ReqBodySender<'conn, S>
where S: Send,

§

impl<'conn, S> Sync for ReqBodySender<'conn, S>
where S: Sync,

§

impl<'conn, S> Unpin for ReqBodySender<'conn, S>

§

impl<'conn, S> !UnwindSafe for ReqBodySender<'conn, S>

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