Trait representing a streaming body of a Request or Response.
Data is streamed via the
poll_data function, which asynchronously yields
T: Buf values. The
size_hint function provides insight into the total number of bytes that will be streamed.
poll_trailers function returns an optional set of trailers used to finalize the request /
response exchange. This is mostly used when using the HTTP/2.0 protocol.
Body trait is a superset of the
BufStream trait. However,
BufStream is not considered
a super trait of
Body. Instead, a
T: Body can be thought of as containing a
well as the HTTP trailers.
There exists is a blanket implementation of
T: BufStream. In other words, any type
BufStream also implements
Body yielding no trailers.
Associated TypesLoading content...
fn poll_data(&mut self) -> Poll<Option<Self::Data>, Self::Error>
Attempt to pull out the next data buffer of this stream.
fn poll_trailers(&mut self) -> Poll<Option<HeaderMap>, Self::Error>
Poll for an optional single
HeaderMap of trailers.
This function should only be called once
fn size_hint(&self) -> SizeHint
Returns the bounds on the remaining length of the stream.
When the exact remaining length of the stream is known, the upper bound will be set and will equal the lower bound.
fn is_end_stream(&self) -> bool
true when the end of stream has been reached.
An end of stream means that both
A return value of
false does not guarantee that a value will be