pub trait Body {
type Data: Buf;
type Error;
// Required method
fn poll_frame(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
) -> Poll<Option<Result<Frame<Self::Data>, Self::Error>>>;
// Provided methods
fn is_end_stream(&self) -> bool { ... }
fn size_hint(&self) -> SizeHint { ... }
}
Expand description
Trait representing a streaming body of a Request or Response.
Individual frames are streamed via the poll_frame
function, which asynchronously yields
instances of Frame<Data>
.
Frames can contain a data buffer of type Self::Data
. Frames can also contain an optional
set of trailers used to finalize the request/response exchange. This is mostly used when using
the HTTP/2.0 protocol.
The size_hint
function provides insight into the total number of bytes that will be streamed.
Required Associated Types§
Required Methods§
Provided Methods§
Sourcefn is_end_stream(&self) -> bool
fn is_end_stream(&self) -> bool
Returns true
when the end of stream has been reached.
An end of stream means that poll_frame
will return None
.
A return value of false
does not guarantee that a value will be
returned from poll_frame
.
Implementations on Foreign Types§
Source§impl<P> Body for Pin<P>
impl<P> Body for Pin<P>
type Data = <<P as Deref>::Target as Body>::Data
type Error = <<P as Deref>::Target as Body>::Error
fn poll_frame( self: Pin<&mut Pin<P>>, cx: &mut Context<'_>, ) -> Poll<Option<Result<Frame<<Pin<P> as Body>::Data>, <Pin<P> as Body>::Error>>>
fn is_end_stream(&self) -> bool
fn size_hint(&self) -> SizeHint
Implementors§
Source§impl Body for BodyDataStream
impl Body for BodyDataStream
Source§impl<B> Body for CompressionBody<B>
Available on crate feature compression
only.
impl<B> Body for CompressionBody<B>
Available on crate feature
compression
only.Source§impl<B> Body for DecompressionBody<B>
Available on crate feature compression
only.
impl<B> Body for DecompressionBody<B>
Available on crate feature
compression
only.