pub struct Trailer { /* private fields */ }
Expand description
Holds the current state of a trailer for a response.
This object acts as a shared handle that can be cloned and polled from multiple threads to wait for and act on the response trailer.
There are two typical workflows for accessing trailer headers:
- If you are consuming the response body and then accessing the headers
afterward, then all trailers are guaranteed to have arrived (if any).
Trailer::try_get
will allow you to access them without extra overhead. - If you are handling trailers in a separate task, callback, or thread, then
either
Trailer::wait
orTrailer::wait_async
will allow you to wait for the trailer headers to arrive and then handle them.
Note that in either approach, trailer headers are delivered to your
application as a single HeaderMap
; it is not possible to handle
individual headers as they arrive.
Implementations
sourceimpl Trailer
impl Trailer
sourcepub fn is_ready(&self) -> bool
pub fn is_ready(&self) -> bool
Returns true if the trailer has been received (if any).
The trailer will not be received until the body stream associated with this response has been fully consumed.
sourcepub fn try_get(&self) -> Option<&HeaderMap>
pub fn try_get(&self) -> Option<&HeaderMap>
Attempt to get the trailer headers without blocking. Returns None
if
the trailer has not been received yet.
sourcepub fn wait(&self) -> &HeaderMap
pub fn wait(&self) -> &HeaderMap
Block the current thread until the trailer headers arrive, and then return them.
This is a blocking operation! If you are writing an asynchronous
application, then you probably want to use Trailer::wait_async
instead.
sourcepub fn wait_timeout(&self, timeout: Duration) -> Option<&HeaderMap>
pub fn wait_timeout(&self, timeout: Duration) -> Option<&HeaderMap>
Block the current thread until the trailer headers arrive or a timeout expires.
If the given timeout expired before the trailer arrived then None
is
returned.
This is a blocking operation! If you are writing an asynchronous
application, then you probably want to use Trailer::wait_async
instead.
sourcepub async fn wait_async(&self) -> &HeaderMap
pub async fn wait_async(&self) -> &HeaderMap
Wait asynchronously until the trailer headers arrive, and then return them.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Trailer
impl Send for Trailer
impl Sync for Trailer
impl Unpin for Trailer
impl UnwindSafe for Trailer
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
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
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
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
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more