Struct Trailer

Source
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 or Trailer::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§

Source§

impl Trailer

Source

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.

Source

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.

Source

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.

Source

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.

Source

pub async fn wait_async(&self) -> &HeaderMap

Wait asynchronously until the trailer headers arrive, and then return them.

Trait Implementations§

Source§

impl Clone for Trailer

Source§

fn clone(&self) -> Trailer

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Trailer

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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
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
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T