Struct domain::base::opt::OptRecord

source ·
pub struct OptRecord<Octs> { /* private fields */ }
Expand description

An entire OPT record.

Because the EDNS specificiation uses parts of the header of the OPT record to convey some information, a special record type is necessary for OPT records. You can convert a normal record with Opt record data into an OptRecord via the from_record function.

Implementations§

source§

impl<Octs> OptRecord<Octs>

source

pub fn from_record<N: ToDname>(record: Record<N, Opt<Octs>>) -> Self

Converts a regular record into an OPT record

source

pub fn udp_payload_size(&self) -> u16

Returns the UDP payload size.

Through this field a sender of a message can signal the maximum size of UDP payload the sender is able to handle when receiving messages. This value refers to the abilities of the sender’s DNS implementation, not such things as network MTUs. Which means that the largest UDP payload that can actually be sent back to the sender may be smaller.

source

pub fn rcode(&self, header: Header) -> OptRcode

Returns the extended rcode.

Some of the bits of the rcode are stored in the regular message header. Such a header needs to be passed to the method.

source

pub fn version(&self) -> u8

Returns the EDNS version of the OPT header.

Only EDNS version 0 is currently defined.

source

pub fn dnssec_ok(&self) -> bool

Returns the value of the DNSSEC OK (DO) bit.

By setting this bit, a resolver indicates that it is interested in also receiving the DNSSEC-related resource records necessary to validate an answer. The bit and the related procedures are defined in RFC 3225.

source

pub fn opt(&self) -> &Opt<Octs>

Returns a reference to the raw options.

Trait Implementations§

source§

impl<Octs> AsRef<Opt<Octs>> for OptRecord<Octs>

source§

fn as_ref(&self) -> &Opt<Octs>

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl<Octs: Clone> Clone for OptRecord<Octs>

source§

fn clone(&self) -> OptRecord<Octs>

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<Octs, N: ToDname> From<Record<N, Opt<Octs>>> for OptRecord<Octs>

source§

fn from(record: Record<N, Opt<Octs>>) -> Self

Converts to this type from the input type.
source§

impl<Octs, SrcOcts> OctetsFrom<OptRecord<SrcOcts>> for OptRecord<Octs>
where Octs: OctetsFrom<SrcOcts>,

§

type Error = <Octs as OctetsFrom<SrcOcts>>::Error

source§

fn try_octets_from(source: OptRecord<SrcOcts>) -> Result<Self, Self::Error>

Performs the conversion.

Auto Trait Implementations§

§

impl<Octs> Freeze for OptRecord<Octs>
where Octs: Freeze,

§

impl<Octs> RefUnwindSafe for OptRecord<Octs>
where Octs: RefUnwindSafe,

§

impl<Octs> Send for OptRecord<Octs>
where Octs: Send,

§

impl<Octs> Sync for OptRecord<Octs>
where Octs: Sync,

§

impl<Octs> Unpin for OptRecord<Octs>
where Octs: Unpin,

§

impl<Octs> UnwindSafe for OptRecord<Octs>
where Octs: UnwindSafe,

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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<Source, Target> OctetsInto<Target> for Source
where Target: OctetsFrom<Source>,

§

type Error = <Target as OctetsFrom<Source>>::Error

source§

fn try_octets_into( self, ) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
source§

fn octets_into(self) -> Target
where Self::Error: Into<Infallible>,

Performs an infallible conversion.
source§

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

§

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, U> TryFrom<U> for T
where U: Into<T>,

§

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>,

§

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