Resolvers

Struct Resolvers 

Source
pub struct Resolvers { /* private fields */ }
Expand description

The device’s own choice of resolvers (PROP_IP_DNS).

Held as encoded items rather than as parsed addresses because the two families are different widths and a list may mix them, and because what a host wrote is exactly what it reads back.

Implementations§

Source§

impl Resolvers

Source

pub fn is_empty(&self) -> bool

Source

pub fn iter(&self) -> impl Iterator<Item = &[u8]>

Each resolver, in the order it was written.

Source

pub fn push(&mut self, resolver: &[u8]) -> Result<(), ResolverError>

Append one resolver.

Used on its own by the snapshot decoder, which sees the list an option at a time rather than as one value.

Source

pub fn replace(&mut self, items: &[u8]) -> Result<(), ResolverError>

Replace the whole list, or refuse it whole.

Whole-list because that is how a small set of resolvers is edited: an operator adds one and removes another in the same breath, and a device left holding half of that would be resolving through a server nobody meant to keep. A candidate is built first so a refusal leaves the old list exactly as it was.

Source

pub fn encode(&self, out: &mut [u8]) -> Option<usize>

The list as it goes on the wire, length-prefixed.

Trait Implementations§

Source§

impl Clone for Resolvers

Source§

fn clone(&self) -> Resolvers

Returns a duplicate of the value. Read more
1.0.0§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Resolvers

Source§

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

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

impl Default for Resolvers

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl PartialEq for Resolvers

Source§

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

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

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 Copy for Resolvers

Source§

impl Eq for Resolvers

Source§

impl StructuralPartialEq for Resolvers

Auto Trait Implementations§

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

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

§

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

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

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

Source§

type Output = T

Should always be Self
§

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

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
§

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.
§

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

Performs the conversion.