PersistentHttpConnection

Struct PersistentHttpConnection 

Source
pub struct PersistentHttpConnection { /* private fields */ }
Expand description

Encapsulates a HttpClientSession, enabling multiple requests to be queued and used on a single session.

It ensures only one request can be in flight at a time, and will buffer the request until the connection is established. This utilizes HTTP 1.x keep-alive headers to attempt to re-use the same connection for multiple requests.

Requests are started by calling PersistentHttpConnection::request, which will return a PendingHttpResponse. These pending http response will coordinate with one another to send requests and drive responses in the order the function was called.

An HTTP server may elect to close an http session at any time. When this occurs, a new PersistentHttpConnection must be created from the original HttpClient.

Implementations§

Trait Implementations§

Source§

impl Debug for PersistentHttpConnection

Source§

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

Formats the value using the given formatter. Read more
Source§

impl From<HttpClientSession> for PersistentHttpConnection

Source§

fn from(session: HttpClientSession) -> Self

Converts to this type from the input type.
Source§

impl Session for PersistentHttpConnection

Source§

fn status(&self) -> SessionStatus

Check the current session status. Read more
Source§

fn drive(&mut self) -> Result<DriveOutcome, Error>

Some implementations will internally buffer payloads or require a duty cycle to drive callbacks. Those implementations will require drive(..) to be called continuously to completely publish and/or receive data. This function will return DriveOutcome::Active if work was done, indicating to any scheduler that more work may be pending. When this function returns DriveOutcome::Idle, only then should it indicate to a scheduler that yielding or idling is appropriate.

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<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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, 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> Same for T

Source§

type Output = T

Should always be Self
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V