Trait Resolver

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

    // Provided method
    fn async_resolve<'a>(
        &'a self,
        domain: &'a str,
        opts: ResolveOptions<'a>,
    ) -> Pin<Box<dyn Future<Output = Result<ResolveAnswers, Error>> + Send + 'a>> { ... }
}
Expand description

域名解析的接口

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

Required Methods§

Source

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

解析域名

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

Provided Methods§

Source

fn async_resolve<'a>( &'a self, domain: &'a str, opts: ResolveOptions<'a>, ) -> Pin<Box<dyn Future<Output = Result<ResolveAnswers, Error>> + Send + 'a>>

异步解析域名

Trait Implementations§

Source§

impl<'clone> Clone for Box<dyn Resolver + 'clone>

Source§

fn clone(&self) -> Box<dyn Resolver + 'clone>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'clone> Clone for Box<dyn Resolver + Send + 'clone>

Source§

fn clone(&self) -> Box<dyn Resolver + Send + 'clone>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'clone> Clone for Box<dyn Resolver + Send + Sync + 'clone>

Source§

fn clone(&self) -> Box<dyn Resolver + Send + Sync + 'clone>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'clone> Clone for Box<dyn Resolver + Sync + 'clone>

Source§

fn clone(&self) -> Box<dyn Resolver + Sync + 'clone>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Implementations on Foreign Types§

Source§

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

Source§

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

Source§

fn async_resolve<'a>( &'a self, domain: &'a str, opts: ResolveOptions<'a>, ) -> Pin<Box<dyn Future<Output = Result<ResolveAnswers, Error>> + Send + 'a>>

Source§

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

Source§

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

Source§

fn async_resolve<'a>( &'a self, domain: &'a str, opts: ResolveOptions<'a>, ) -> Pin<Box<dyn Future<Output = Result<ResolveAnswers, Error>> + Send + 'a>>

Source§

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

Source§

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

Source§

fn async_resolve<'a>( &'a self, domain: &'a str, opts: ResolveOptions<'a>, ) -> Pin<Box<dyn Future<Output = Result<ResolveAnswers, Error>> + Send + 'a>>

Source§

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

Source§

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

Source§

fn async_resolve<'a>( &'a self, domain: &'a str, opts: ResolveOptions<'a>, ) -> Pin<Box<dyn Future<Output = Result<ResolveAnswers, Error>> + Send + 'a>>

Source§

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

Source§

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

Source§

fn async_resolve<'a>( &'a self, domain: &'a str, opts: ResolveOptions<'a>, ) -> Pin<Box<dyn Future<Output = Result<ResolveAnswers, Error>> + Send + 'a>>

Implementors§