Struct RecordSet

pub struct RecordSet { /* private fields */ }
Expand description

Set of resource records associated to a name and type

Implementations§

§

impl RecordSet

pub fn new(name: Name, record_type: RecordType, serial: u32) -> RecordSet

Creates a new Resource Record Set.

§Arguments
  • name - The label for the RecordSet
  • record_type - RecordType of this RecordSet, all records in the RecordSet must be of the specified RecordType.
  • serial - current serial number of the SOA record, this is to be used for IXFR and signing for DNSSEC after updates.
§Return value

The newly created Resource Record Set TODO: make all cloned params pass by value

pub fn with_ttl(name: Name, record_type: RecordType, ttl: u32) -> RecordSet

Creates a new Resource Record Set.

§Arguments
  • name - The label for the RecordSet
  • record_type - RecordType of this RecordSet, all records in the RecordSet must be of the specified RecordType.
  • ttl - time-to-live for the RecordSet in seconds.
§Return value

The newly created Resource Record Set TODO: make all cloned params pass by value

pub fn name(&self) -> &Name

§Return value

Label of the Resource Record Set

pub fn record_type(&self) -> RecordType

§Return value

RecordType of the Resource Record Set

pub fn set_dns_class(&mut self, dns_class: DNSClass)

Sets the DNSClass to the specified value

This will traverse every record and associate with it the specified dns_class

pub fn dns_class(&self) -> DNSClass

Returns the DNSClass of the RecordSet

pub fn set_ttl(&mut self, ttl: u32)

Sets the TTL, in seconds, to the specified value

This will traverse every record and associate with it the specified ttl

pub fn ttl(&self) -> u32

Returns the time-to-live for the record.

§Return value

TTL, time-to-live, of the Resource Record Set, this is the maximum length of time that an RecordSet should be cached.

pub fn records_without_rrsigs(&self) -> RrsetRecords<'_>

Returns a Vec of all records in the set, without any RRSIGs.

pub fn iter(&self) -> Iter<'_, Record>

👎Deprecated: see records_without_rrsigs

Returns an iterator over the records in the set

pub fn is_empty(&self) -> bool

Returns true if there are no records in this set

pub fn serial(&self) -> u32

Returns the serial number at which the record was updated.

pub fn rrsigs(&self) -> &[Record]

Returns a slice of all the Records signatures in the RecordSet

pub fn insert_rrsig(&mut self, rrsig: Record)

Inserts a Signature for the Record set

Many can be associated with the RecordSet. Once added, the RecordSet should not be changed

§Arguments
  • rrsig - A signature which covers the RecordSet.

pub fn clear_rrsigs(&mut self)

Useful for clearing all signatures when the RecordSet is updated, or keys are rotated.

pub fn new_record(&mut self, rdata: &RData) -> &Record

creates a new Record as part of this RecordSet, adding the associated RData

this interface may be deprecated in the future.

pub fn add_rdata(&mut self, rdata: RData) -> bool

creates a new Record as part of this RecordSet, adding the associated RData

pub fn insert(&mut self, record: Record, serial: u32) -> bool

Inserts a new Resource Record into the Set.

If the record is inserted, the ttl for the most recent record will be used for the ttl of the entire resource record set.

This abides by the following restrictions in RFC 2136, April 1997:

1.1.5. The following RR types cannot be appended to an RRset.  If the
 following comparison rules are met, then an attempt to add the new RR
 will result in the replacement of the previous RR:

SOA    compare only NAME, CLASS and TYPE -- it is not possible to
        have more than one SOA per zone, even if any of the data
        fields differ.

CNAME  compare only NAME, CLASS, and TYPE -- it is not possible
        to have more than one CNAME RR, even if their data fields
        differ.
§Arguments
  • record - Record asserts that the name and record_type match the RecordSet.
  • serial - current serial number of the SOA record, this is to be used for IXFR and signing for DNSSEC after updates. The serial will only be updated if the record was added.
§Return value

True if the record was inserted.

TODO: make a default add without serial number for basic usage

pub fn remove(&mut self, record: &Record, serial: u32) -> bool

Removes the Resource Record if it exists.

§Arguments
  • record - Record asserts that the name and record_type match the RecordSet. Removes any record if the record data, RData, match.
  • serial - current serial number of the SOA record, this is to be used for IXFR and signing for DNSSEC after updates. The serial will only be updated if the record was added.
§Return value

True if a record was removed.

pub fn into_parts(self) -> RecordSetParts

Consumes RecordSet and returns its components

Trait Implementations§

§

impl Clone for RecordSet

§

fn clone(&self) -> RecordSet

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for RecordSet

§

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

Formats the value using the given formatter. Read more
§

impl From<Record> for RecordSet

§

fn from(record: Record) -> RecordSet

Converts to this type from the input type.
§

impl IntoIterator for RecordSet

§

type Item = Record

The type of the elements being iterated over.
§

type IntoIter = Chain<IntoIter<Record>, IntoIter<Record>>

Which kind of iterator are we turning this into?
§

fn into_iter(self) -> <RecordSet as IntoIterator>::IntoIter

Creates an iterator from a value. Read more
§

impl IntoRecordSet for RecordSet

§

fn into_record_set(self) -> RecordSet

👎Deprecated: use From/Into
Performs the conversion to a RecordSet
§

impl PartialEq for RecordSet

§

fn eq(&self, other: &RecordSet) -> 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.
§

impl Eq for RecordSet

§

impl StructuralPartialEq for RecordSet

Auto Trait Implementations§

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
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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, dest: *mut u8)

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

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

§

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

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

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

§

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

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

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FutureExt for T

§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
§

impl<T> Instrument for T

§

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

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

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

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
§

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

§

fn rama_from(value: T) -> U

§

impl<T, U, CrateMarker> RamaInto<U, CrateMarker> for T
where U: RamaFrom<T, CrateMarker>,

§

fn rama_into(self) -> U

§

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

§

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

§

fn rama_try_from(value: T) -> Result<U, <U as RamaTryFrom<T>>::Error>

§

impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for T
where U: RamaTryFrom<T, CrateMarker>,

§

type Error = <U as RamaTryFrom<T, CrateMarker>>::Error

§

fn rama_try_into(self) -> Result<U, <U as RamaTryFrom<T, CrateMarker>>::Error>

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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, 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.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

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