hickory_proto::rr::rdata::https

Struct HTTPS

Source
pub struct HTTPS(pub SVCB);
Expand description

HTTPS is really a derivation of the original SVCB record data. See SVCB for more documentation

Tuple Fields§

§0: SVCB

Methods from Deref<Target = SVCB>§

Source

pub fn svc_priority(&self) -> u16

RFC 9460 SVCB and HTTPS Resource Records, Nov 2023

2.4.1.  SvcPriority

  When SvcPriority is 0 the SVCB record is in AliasMode
  (Section 2.4.2).  Otherwise, it is in ServiceMode (Section 2.4.3).

  Within a SVCB RRSet, all RRs SHOULD have the same Mode.  If an RRSet
  contains a record in AliasMode, the recipient MUST ignore any
  ServiceMode records in the set.

  RRSets are explicitly unordered collections, so the SvcPriority field
  is used to impose an ordering on SVCB RRs.  A smaller SvcPriority indicates
  that the domain owner recommends the use of this record over ServiceMode
  RRs with a larger SvcPriority value.

  When receiving an RRSet containing multiple SVCB records with the
  same SvcPriority value, clients SHOULD apply a random shuffle within
  a priority level to the records before using them, to ensure uniform
  load-balancing.
Source

pub fn target_name(&self) -> &Name

RFC 9460 SVCB and HTTPS Resource Records, Nov 2023

2.5.  Special handling of "." in TargetName

  If TargetName has the value "." (represented in the wire format as a
   zero-length label), special rules apply.

2.5.1.  AliasMode

   For AliasMode SVCB RRs, a TargetName of "." indicates that the
   service is not available or does not exist.  This indication is
   advisory: clients encountering this indication MAY ignore it and
   attempt to connect without the use of SVCB.

2.5.2.  ServiceMode

   For ServiceMode SVCB RRs, if TargetName has the value ".", then the
   owner name of this record MUST be used as the effective TargetName.
   If the record has a wildcard owner name in the zone file, the recipient
   SHALL use the response's synthesized owner name as the effective TargetName.

   Here, for example, "svc2.example.net" is the effective TargetName:

   example.com.      7200  IN HTTPS 0 svc.example.net.
   svc.example.net.  7200  IN CNAME svc2.example.net.
   svc2.example.net. 7200  IN HTTPS 1 . port=8002
   svc2.example.net. 300   IN A     192.0.2.2
   svc2.example.net. 300   IN AAAA  2001:db8::2
Source

pub fn svc_params(&self) -> &[(SvcParamKey, SvcParamValue)]

See SvcParamKey for details on each parameter

Trait Implementations§

Source§

impl BinEncodable for HTTPS

Source§

fn emit(&self, encoder: &mut BinEncoder<'_>) -> Result<(), ProtoError>

Write the type to the stream
Source§

fn to_bytes(&self) -> Result<Vec<u8>, ProtoError>

Returns the object in binary form
Source§

impl Clone for HTTPS

Source§

fn clone(&self) -> HTTPS

Returns a copy 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 Debug for HTTPS

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Deref for HTTPS

Source§

type Target = SVCB

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<'de> Deserialize<'de> for HTTPS

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Display for HTTPS

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Hash for HTTPS

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for HTTPS

Source§

fn eq(&self, other: &HTTPS) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl RecordData for HTTPS

Source§

fn try_from_rdata(data: RData) -> Result<Self, RData>

Attempts to convert to this RecordData from the RData type, if it is not the correct type the original is returned
Source§

fn try_borrow(data: &RData) -> Option<&Self>

Attempts to borrow this RecordData from the RData type, if it is not the correct type the original is returned
Source§

fn record_type(&self) -> RecordType

Get the associated RecordType for the RecordData
Source§

fn into_rdata(self) -> RData

Converts this RecordData into generic RecordData
Source§

fn is_update(&self) -> bool

RDLENGTH = 0
Source§

impl Serialize for HTTPS

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Eq for HTTPS

Source§

impl StructuralPartialEq for HTTPS

Auto Trait Implementations§

§

impl Freeze for HTTPS

§

impl RefUnwindSafe for HTTPS

§

impl Send for HTTPS

§

impl Sync for HTTPS

§

impl Unpin for HTTPS

§

impl UnwindSafe for HTTPS

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
Available on non-bootstrap only.
The target type on which the method may be called.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T