Struct trust_dns_proto::xfer::DnsExchangeConnect[][src]

pub struct DnsExchangeConnect<F, S, R, TE>(_)
where
    F: Future<Output = Result<S, ProtoError>> + 'static + Send + Unpin,
    S: DnsRequestSender<DnsResponseFuture = R> + 'static,
    R: Future<Output = Result<DnsResponse, ProtoError>> + 'static + Send + Unpin,
    TE: Time + Unpin
;

A wrapper for a future DnsExchange connection.

DnsExchangeConnect is clonable, making it possible to share this if the connection will be shared across threads.

The future will return a tuple of the DnsExchange (for sending messages) and a background for running the background tasks. The background is optional as only one thread should run the background. If returned, it must be spawned before any dns requests will function.

Trait Implementations

impl<F, S, R, TE> Future for DnsExchangeConnect<F, S, R, TE> where
    F: Future<Output = Result<S, ProtoError>> + 'static + Send + Unpin,
    S: DnsRequestSender<DnsResponseFuture = R> + 'static + Send + Unpin,
    R: Future<Output = Result<DnsResponse, ProtoError>> + 'static + Send + Unpin,
    TE: Time + Unpin
[src]

type Output = Result<(DnsExchange<R>, DnsExchangeBackground<S, R, TE>), ProtoError>

The type of value produced on completion.

Auto Trait Implementations

impl<F, S, R, TE> !RefUnwindSafe for DnsExchangeConnect<F, S, R, TE>

impl<F, S, R, TE> Send for DnsExchangeConnect<F, S, R, TE> where
    TE: Send

impl<F, S, R, TE> Sync for DnsExchangeConnect<F, S, R, TE> where
    F: Sync,
    S: Sync,
    TE: Sync

impl<F, S, R, TE> Unpin for DnsExchangeConnect<F, S, R, TE>

impl<F, S, R, TE> !UnwindSafe for DnsExchangeConnect<F, S, R, TE>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> FutureExt for T where
    T: Future + ?Sized

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<F> IntoFuture for F where
    F: Future
[src]

type Output = <F as Future>::Output

🔬 This is a nightly-only experimental API. (into_future)

The output that the future will produce on completion.

type Future = F

🔬 This is a nightly-only experimental API. (into_future)

Which kind of future are we turning this into?

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<F, T, E> TryFuture for F where
    F: Future<Output = Result<T, E>> + ?Sized

type Ok = T

The type of successful values yielded by this future

type Error = E

The type of failures yielded by this future

impl<Fut> TryFutureExt for Fut where
    Fut: TryFuture + ?Sized

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,