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§
Sourcefn resolve(&self, domain: &str, opts: ResolveOptions<'_>) -> ResolveResult
fn resolve(&self, domain: &str, opts: ResolveOptions<'_>) -> ResolveResult
解析域名
该方法的异步版本为 Self::async_resolve
。
Provided Methods§
Sourcefn async_resolve<'a>(
&'a self,
domain: &'a str,
opts: ResolveOptions<'a>,
) -> BoxFuture<'a, ResolveResult>
Available on crate feature async
only.
fn async_resolve<'a>( &'a self, domain: &'a str, opts: ResolveOptions<'a>, ) -> BoxFuture<'a, ResolveResult>
async
only.异步解析域名
Implementations on Foreign Types§
Source§impl<'b, T: 'b + Resolver + ?Sized> Resolver for &'b T
impl<'b, T: 'b + Resolver + ?Sized> Resolver for &'b T
fn resolve(&self, domain: &str, opts: ResolveOptions<'_>) -> ResolveResult
Source§fn async_resolve<'a>(
&'a self,
domain: &'a str,
opts: ResolveOptions<'a>,
) -> BoxFuture<'a, ResolveResult>
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
impl<'b, T: 'b + Resolver + ?Sized> Resolver for &'b mut T
fn resolve(&self, domain: &str, opts: ResolveOptions<'_>) -> ResolveResult
Source§fn async_resolve<'a>(
&'a self,
domain: &'a str,
opts: ResolveOptions<'a>,
) -> BoxFuture<'a, ResolveResult>
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>
impl<T: Resolver + ?Sized> Resolver for Box<T>
fn resolve(&self, domain: &str, opts: ResolveOptions<'_>) -> ResolveResult
Source§fn async_resolve<'a>(
&'a self,
domain: &'a str,
opts: ResolveOptions<'a>,
) -> BoxFuture<'a, ResolveResult>
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>
impl<T: Resolver + ?Sized> Resolver for Rc<T>
fn resolve(&self, domain: &str, opts: ResolveOptions<'_>) -> ResolveResult
Source§fn async_resolve<'a>(
&'a self,
domain: &'a str,
opts: ResolveOptions<'a>,
) -> BoxFuture<'a, ResolveResult>
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>
impl<T: Resolver + ?Sized> Resolver for Arc<T>
fn resolve(&self, domain: &str, opts: ResolveOptions<'_>) -> ResolveResult
Source§fn async_resolve<'a>(
&'a self,
domain: &'a str,
opts: ResolveOptions<'a>,
) -> BoxFuture<'a, ResolveResult>
fn async_resolve<'a>( &'a self, domain: &'a str, opts: ResolveOptions<'a>, ) -> BoxFuture<'a, ResolveResult>
Available on crate feature
async
only.