pub trait DnsHandle:
'static
+ Clone
+ Send
+ Sync
+ Unpin {
type Response: Stream<Item = Result<DnsResponse, Self::Error>> + Send + Unpin + 'static;
type Error: From<ProtoError> + Error + Clone + Send + Unpin + 'static;
// Required method
fn send<R: Into<DnsRequest> + Unpin + Send + 'static>(
&mut self,
request: R,
) -> Self::Response;
// Provided methods
fn is_verifying_dnssec(&self) -> bool { ... }
fn is_using_edns(&self) -> bool { ... }
fn lookup(
&mut self,
query: Query,
options: DnsRequestOptions,
) -> Self::Response { ... }
}
Expand description
A trait for implementing high level functions of DNS.
Required Associated Types§
Required Methods§
Sourcefn send<R: Into<DnsRequest> + Unpin + Send + 'static>(
&mut self,
request: R,
) -> Self::Response
fn send<R: Into<DnsRequest> + Unpin + Send + 'static>( &mut self, request: R, ) -> Self::Response
Send a message via the channel in the client
§Arguments
request
- the fully constructed Message to send, note that most implementations of will most likely be required to rewrite the QueryId, do no rely on that as being stable.
Provided Methods§
Sourcefn is_verifying_dnssec(&self) -> bool
fn is_verifying_dnssec(&self) -> bool
Only returns true if and only if this DNS handle is validating DNSSec.
If the DnsHandle impl is wrapping other clients, then the correct option is to delegate the question to the wrapped client.
Sourcefn is_using_edns(&self) -> bool
fn is_using_edns(&self) -> bool
Allow for disabling EDNS
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.