pub trait DnsRequestSender:
Stream<Item = Result<(), ProtoError>>
+ Send
+ Unpin
+ 'static {
// Required methods
fn send_message(&mut self, message: DnsRequest) -> DnsResponseStream;
fn shutdown(&mut self);
fn is_shutdown(&self) -> bool;
}
Expand description
Types that implement this are capable of sending a serialized DNS message on a stream
The underlying Stream implementation should yield Some(())
whenever it is ready to send a message,
NotReady, if it is not ready to send a message, and Err
or None
in the case that the stream is
done, and should be shutdown.
Required Methods§
Sourcefn send_message(&mut self, message: DnsRequest) -> DnsResponseStream
fn send_message(&mut self, message: DnsRequest) -> DnsResponseStream
Send a message, and return a stream of response
§Return
A stream which will resolve to SerialMessage responses
Sourcefn shutdown(&mut self)
fn shutdown(&mut self)
Allows the upstream user to inform the underling stream that it should shutdown.
After this is called, the next time poll
is called on the stream it would be correct to return Poll::Ready(Ok(()))
. This is not required though, if there are say outstanding requests that are not yet complete, then it would be correct to first wait for those results.
Sourcefn is_shutdown(&self) -> bool
fn is_shutdown(&self) -> bool
Returns true if the stream has been shutdown with shutdown
Implementors§
impl DnsRequestSender for HttpsClientStream
dns-over-https-rustls
only.impl DnsRequestSender for H3ClientStream
dns-over-h3
only.impl DnsRequestSender for QuicClientStream
dns-over-quic
and tokio-runtime
only.