[][src]Trait public_ip::Resolver

pub trait Resolver<C: ResolverContext>: Send {
    type Error: ResolutionError;
    type Resolution: Resolution;
    type Stream: Stream<Item = Result<Self::Resolution, Self::Error>> + Send + 'static;
    fn resolve(&mut self, cx: C) -> Self::Stream;
}

Trait implemented by IP address resolvers

Associated Types

type Error: ResolutionError

Error produced while attempting to resolve

type Resolution: Resolution

A successfully produced resolution

type Stream: Stream<Item = Result<Self::Resolution, Self::Error>> + Send + 'static

The resolution stream produced by the resolver

Loading content...

Required methods

fn resolve(&mut self, cx: C) -> Self::Stream

Resolves a stream of IP addresses given a context

Note, can only be called once per resolver

Loading content...

Implementors

impl<C> Resolver<C> for DnsResolver where
    C: DnsResolverContext
[src]

type Error = DnsResolutionError

type Stream = BoxStream<'static, Result<Self::Resolution, Self::Error>>

type Resolution = DnsResolution

impl<C> Resolver<C> for HttpResolver where
    C: HttpResolverContext
[src]

type Error = HttpResolutionError

type Resolution = HttpResolution

type Stream = BoxStream<'static, Result<Self::Resolution, Self::Error>>

impl<C> Resolver<C> for BoxResolver<C> where
    C: ResolverContext
[src]

impl<R, C> Resolver<C> for ListResolver<R, C> where
    R: Resolver<C> + 'static,
    C: ResolverContext + Clone + 'static, 
[src]

type Error = R::Error

type Resolution = R::Resolution

type Stream = BoxStream<'static, Result<Self::Resolution, Self::Error>>

impl<R, E, C> Resolver<C> for ResultResolver<R, E> where
    R: Resolver<C>,
    C: ResolverContext,
    E: ResolutionError
[src]

type Error = BoxResolutionError

type Resolution = R::Resolution

type Stream = BoxStream<'static, Result<Self::Resolution, Self::Error>>

Loading content...