Struct TransportConnector

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

TransportConnector provides APIs to connect to servers via TCP or TLS with connection reuse

Implementations§

Source§

impl TransportConnector

Source

pub fn new(options: Option<ConnectorOptions>) -> TransportConnector

Create a new TransportConnector with the given ConnectorOptions

Source

pub async fn new_stream<P>(&self, peer: &P) -> Result<Box<dyn IO>, Box<Error>>
where P: Peer + Send + Sync + 'static,

Connect to the given server Peer

No connection is reused.

Source

pub async fn reused_stream<P>(&self, peer: &P) -> Option<Box<dyn IO>>
where P: Peer + Send + Sync,

Try to find a reusable connection to the given server Peer

Source

pub fn release_stream( &self, stream: Box<dyn IO>, key: u64, idle_timeout: Option<Duration>, )

Return the Stream to the TransportConnector for connection reuse.

Not all TCP/TLS connections can be reused. It is the caller’s responsibility to make sure that protocol over the Stream supports connection reuse and the Stream itself is ready to be reused.

If a Stream is dropped instead of being returned via this function. it will be closed.

Source

pub async fn get_stream<P>( &self, peer: &P, ) -> Result<(Box<dyn IO>, bool), Box<Error>>
where P: Peer + Send + Sync + 'static,

Get a stream to the given server Peer

This function will try to find a reusable Stream first. If there is none, a new connection will be made to the server.

The returned boolean will indicate whether the stream is reused.

Source

pub fn prefer_h1(&self, peer: &impl Peer)

Tell the connector to always send h1 for ALPN for the given peer in the future.

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> 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, 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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
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

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,