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

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
[src]

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

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
[src]

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
[src]

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>,