pub trait Resolver: DynClone + Debug + Sync + Send {
    // Required method
    fn resolve(&self, domain: &str, opts: ResolveOptions<'_>) -> ResolveResult;

    // Provided method
    fn async_resolve<'a>(
        &'a self,
        domain: &'a str,
        opts: ResolveOptions<'a>
    ) -> BoxFuture<'a, ResolveResult> { ... }
}
Expand description

域名解析的接口

同时提供阻塞接口和异步接口,异步接口则需要启用 async 功能

Required Methods§

source

fn resolve(&self, domain: &str, opts: ResolveOptions<'_>) -> ResolveResult

解析域名

该方法的异步版本为 Self::async_resolve

Provided Methods§

source

fn async_resolve<'a>( &'a self, domain: &'a str, opts: ResolveOptions<'a> ) -> BoxFuture<'a, ResolveResult>

Available on crate feature async only.

异步解析域名

Implementations on Foreign Types§

source§

impl<'b, T: 'b + Resolver + ?Sized> Resolver for &'b T
where &'b T: DynClone + Debug + Sync + Send,

source§

fn resolve(&self, domain: &str, opts: ResolveOptions<'_>) -> ResolveResult

source§

fn async_resolve<'a>( &'a self, domain: &'a str, opts: ResolveOptions<'a> ) -> BoxFuture<'a, ResolveResult>

Available on crate feature async only.
source§

impl<'b, T: 'b + Resolver + ?Sized> Resolver for &'b mut T

source§

fn resolve(&self, domain: &str, opts: ResolveOptions<'_>) -> ResolveResult

source§

fn async_resolve<'a>( &'a self, domain: &'a str, opts: ResolveOptions<'a> ) -> BoxFuture<'a, ResolveResult>

Available on crate feature async only.
source§

impl<T: Resolver + ?Sized> Resolver for Box<T>
where Box<T>: DynClone + Debug + Sync + Send,

source§

fn resolve(&self, domain: &str, opts: ResolveOptions<'_>) -> ResolveResult

source§

fn async_resolve<'a>( &'a self, domain: &'a str, opts: ResolveOptions<'a> ) -> BoxFuture<'a, ResolveResult>

Available on crate feature async only.
source§

impl<T: Resolver + ?Sized> Resolver for Rc<T>
where Rc<T>: DynClone + Debug + Sync + Send,

source§

fn resolve(&self, domain: &str, opts: ResolveOptions<'_>) -> ResolveResult

source§

fn async_resolve<'a>( &'a self, domain: &'a str, opts: ResolveOptions<'a> ) -> BoxFuture<'a, ResolveResult>

Available on crate feature async only.
source§

impl<T: Resolver + ?Sized> Resolver for Arc<T>
where Arc<T>: DynClone + Debug + Sync + Send,

source§

fn resolve(&self, domain: &str, opts: ResolveOptions<'_>) -> ResolveResult

source§

fn async_resolve<'a>( &'a self, domain: &'a str, opts: ResolveOptions<'a> ) -> BoxFuture<'a, ResolveResult>

Available on crate feature async only.

Implementors§