Struct domain::rdata::svcb::Svcb

source ·
pub struct Svcb<O, N> { /* private fields */ }
Expand description

Struct has priority and target decoded, but not parameters. Provides a iter method to iterate through each parameter.

Implementations§

source§

impl<O, N> Svcb<O, N>

source

pub fn new(priority: u16, target: N, params: O) -> Self

Create a new SVCB(or its siblings) with given arguments.

Examples

To parse a SVCB record

let rdata = SVCB::new(1, dname, octets);
for param in rdata.iter() {
    ...
}

To build a SCVB record

let rdata = SCVB::new(1, dname, octets_builder);
rdata.push(param1)?;
rdata.push(param2)?;
rdata.freeze();
source

pub fn priority(&self) -> u16

Get the priority.

source

pub fn target(&self) -> &N

Get the target. Note the target won’t be translated to owner automatically in service mode if it equals to root.

source§

impl<Ref> Svcb<Ref::Range, ParsedDname<Ref>>where Ref: OctetsRef,

source

pub fn flatten_into<Octets>( self ) -> Result<Svcb<Octets, Dname<Octets>>, PushError>where Octets: OctetsFrom<Ref::Range> + FromBuilder, <Octets as FromBuilder>::Builder: EmptyBuilder,

source§

impl<OB: OctetsBuilder, N> Svcb<OB, N>

source

pub fn freeze(self) -> Svcb<OB::Octets, N>

Freeze the internal OctetsBuilder.

source§

impl<OB: OctetsBuilder + AsMut<[u8]>, N> Svcb<OB, N>

source

pub fn push<O: AsRef<[u8]>>( &mut self, param: AllParams<O> ) -> Result<(), ShortBuf>

Push a parameter into the builder.

source§

impl<O: AsRef<[u8]>, N: Compose> Svcb<O, N>

source

pub fn compose_unchecked<T: OctetsBuilder + AsMut<[u8]>>( &self, target: &mut T ) -> Result<(), ShortBuf>

Compose without checking for the order of parameters.

source§

impl<O: AsRef<[u8]>, N> Svcb<O, N>

source

pub fn iter(&self) -> ParamIter<&[u8]>

Trait Implementations§

source§

impl<O: Clone, N: Clone> Clone for Svcb<O, N>

source§

fn clone(&self) -> Svcb<O, N>

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<O: AsRef<[u8]>, N: Compose> Compose for Svcb<O, N>

source§

fn compose<T: OctetsBuilder + AsMut<[u8]>>( &self, target: &mut T ) -> Result<(), ShortBuf>

Appends the concrete representation of the value to the target. Read more
source§

fn compose_canonical<T: OctetsBuilder + AsMut<[u8]>>( &self, target: &mut T ) -> Result<(), ShortBuf>

Appends the canonical representation of the value to the target. Read more
source§

impl<O, N> Debug for Svcb<O, N>where O: AsRef<[u8]>, N: Debug,

source§

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

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

impl<O, N> Display for Svcb<O, N>where O: AsRef<[u8]>, N: Display,

source§

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

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

impl<O, N> From<Svcb<O, N>> for AllRecordData<O, N>

source§

fn from(value: Svcb<O, N>) -> Self

Converts to this type from the input type.
source§

impl<O: AsRef<[u8]>, N: Hash> Hash for Svcb<O, N>

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<O, OO, N, NN> OctetsFrom<Svcb<O, N>> for Svcb<OO, NN>where OO: OctetsFrom<O>, NN: OctetsFrom<N>,

source§

fn octets_from(source: Svcb<O, N>) -> Result<Self, ShortBuf>

Performs the conversion.
source§

impl<Ref: OctetsRef> Parse<Ref> for Svcb<Ref::Range, ParsedDname<Ref>>

source§

fn parse(parser: &mut Parser<Ref>) -> Result<Self, ParseError>

Extracts a value from the beginning of parser. Read more
source§

fn skip(parser: &mut Parser<Ref>) -> Result<(), ParseError>

Skips over a value of this type at the beginning of parser. Read more
source§

impl<O, OO, N, NN> PartialEq<Svcb<OO, NN>> for Svcb<O, N>where O: AsRef<[u8]>, OO: AsRef<[u8]>, N: ToDname, NN: ToDname,

source§

fn eq(&self, other: &Svcb<OO, NN>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<O, N> RtypeRecordData for Svcb<O, N>

source§

const RTYPE: Rtype = Rtype::Svcb

The record type of a value of this type.
source§

impl<O: AsRef<[u8]>, N: ToDname> Eq for Svcb<O, N>

Auto Trait Implementations§

§

impl<O, N> RefUnwindSafe for Svcb<O, N>where N: RefUnwindSafe, O: RefUnwindSafe,

§

impl<O, N> Send for Svcb<O, N>where N: Send, O: Send,

§

impl<O, N> Sync for Svcb<O, N>where N: Sync, O: Sync,

§

impl<O, N> Unpin for Svcb<O, N>where N: Unpin, O: Unpin,

§

impl<O, N> UnwindSafe for Svcb<O, N>where N: UnwindSafe, O: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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 Sourcewhere Target: OctetsFrom<Source>,

source§

fn octets_into(self) -> Result<Target, ShortBuf>

Performs the conversion.
source§

impl<Octets, T> ParseRecordData<Octets> for Twhere T: RtypeRecordData + Parse<Octets> + Compose,

source§

fn parse_data( rtype: Rtype, parser: &mut Parser<Octets> ) -> Result<Option<T>, ParseError>

Parses the record data. Read more
source§

impl<T> RecordData for Twhere T: RtypeRecordData + Compose,

source§

fn rtype(&self) -> Rtype

Returns the record type associated with this record data instance. Read more
source§

impl<T> ToOwned for Twhere 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> ToString for Twhere 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 Twhere 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 Twhere 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 Twhere V: MultiLane<T>,

source§

fn vzip(self) -> V