Struct trust_dns_proto::rr::rdata::svcb::Mandatory [−][src]
7. ServiceMode RR compatibility and mandatory keys
In a ServiceMode RR, a SvcParamKey is considered "mandatory" if the
RR will not function correctly for clients that ignore this
SvcParamKey. Each SVCB protocol mapping SHOULD specify a set of keys
that are "automatically mandatory", i.e. mandatory if they are
present in an RR. The SvcParamKey "mandatory" is used to indicate
any mandatory keys for this RR, in addition to any automatically
mandatory keys that are present.
A ServiceMode RR is considered "compatible" with a client if the
client recognizes all the mandatory keys, and their values indicate
that successful connection establishment is possible. If the SVCB
RRSet contains no compatible RRs, the client will generally act as if
the RRSet is empty.
The presentation "value" SHALL be a comma-separated list
(Appendix A.1) of one or more valid SvcParamKeys, either by their
registered name or in the unknown-key format (Section 2.1). Keys MAY
appear in any order, but MUST NOT appear more than once. For self-
consistency (Section 2.4.3), listed keys MUST also appear in the
SvcParams.
To enable simpler parsing, this SvcParamValue MUST NOT contain escape
sequences.
For example, the following is a valid list of SvcParams:
echconfig=... key65333=ex1 key65444=ex2 mandatory=key65444,echconfig
In wire format, the keys are represented by their numeric values in
network byte order, concatenated in ascending order.
This SvcParamKey is always automatically mandatory, and MUST NOT
appear in its own value-list. Other automatically mandatory keys
SHOULD NOT appear in the list either. (Including them wastes space
and otherwise has no effect.)
Trait Implementations
impl<'r> BinDecodable<'r> for Mandatory
[src]
fn read(decoder: &mut BinDecoder<'r>) -> ProtoResult<Self>
[src]
This expects the decoder to be limited to only this field, i.e. the end of input for the decoder is the end of input for the fields
In wire format, the keys are represented by their numeric values in
network byte order, concatenated in ascending order.
fn from_bytes(bytes: &'r [u8]) -> ProtoResult<Self>
[src]
impl BinEncodable for Mandatory
[src]
fn emit(&self, encoder: &mut BinEncoder<'_>) -> ProtoResult<()>
[src]
This expects the decoder to be limited to only this field, i.e. the end of input for the decoder is the end of input for the fields
In wire format, the keys are represented by their numeric values in
network byte order, concatenated in ascending order.
fn to_bytes(&self) -> ProtoResult<Vec<u8>>
[src]
impl Clone for Mandatory
[src]
impl Debug for Mandatory
[src]
impl Display for Mandatory
[src]
fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>
[src]
The presentation “value” SHALL be a comma-separated list (Appendix A.1) of one or more valid SvcParamKeys, either by their registered name or in the unknown-key format (Section 2.1). Keys MAY appear in any order, but MUST NOT appear more than once. For self- consistency (Section 2.4.3), listed keys MUST also appear in the SvcParams.
To enable simpler parsing, this SvcParamValue MUST NOT contain escape sequences.
For example, the following is a valid list of SvcParams:
echconfig=… key65333=ex1 key65444=ex2 mandatory=key65444,echconfig
impl Eq for Mandatory
[src]
impl Hash for Mandatory
[src]
fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl PartialEq<Mandatory> for Mandatory
[src]
impl StructuralEq for Mandatory
[src]
impl StructuralPartialEq for Mandatory
[src]
Auto Trait Implementations
impl RefUnwindSafe for Mandatory
impl Send for Mandatory
impl Sync for Mandatory
impl Unpin for Mandatory
impl UnwindSafe for Mandatory
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,