#[non_exhaustive]pub enum Protocol {
Udp,
Tcp,
Tls,
Https,
Quic,
H3,
}
Expand description
The protocol on which a NameServer should be communicated with
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Udp
UDP is the traditional DNS port, this is generally the correct choice
Tcp
TCP can be used for large queries, but not all NameServers support it
Tls
Available on crate feature
dns-over-tls
only.Tls for DNS over TLS
Https
Available on crate feature
dns-over-https-rustls
only.Https for DNS over HTTPS
Quic
Available on crate feature
dns-over-quic
only.QUIC for DNS over QUIC
H3
Available on crate feature
dns-over-h3
only.HTTP/3 for DNS over HTTP/3
Implementations§
Source§impl Protocol
impl Protocol
Sourcepub fn is_datagram(self) -> bool
pub fn is_datagram(self) -> bool
Returns true if this is a datagram oriented protocol, e.g. UDP
Sourcepub fn is_encrypted(self) -> bool
pub fn is_encrypted(self) -> bool
Is this an encrypted protocol, i.e. TLS or HTTPS
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Protocol
impl<'de> Deserialize<'de> for Protocol
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Copy for Protocol
impl Eq for Protocol
impl StructuralPartialEq for Protocol
Auto Trait Implementations§
impl Freeze for Protocol
impl RefUnwindSafe for Protocol
impl Send for Protocol
impl Sync for Protocol
impl Unpin for Protocol
impl UnwindSafe for Protocol
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.