Struct Question

Source
pub struct Question<N: ToDname> { /* private fields */ }
Expand description

A question in a DNS message.

In DNS, a question describes what is requested in a query. It consists of three elements: a domain name, a record type, and a class. This type such a question.

Questions are generic over the domain name type. When read from an actual message, a ParsedDname has to be used because the name part may be compressed.

In order to allow questions on the fly, in particular when creating messages via MessageBuilder, the From trait is implemented for tuples of all three elements of a question as well as for only name and record type assuming Class::In which is likely what you want, anyway.

Implementations§

Source§

impl<N: ToDname> Question<N>

§Creation and Conversion

Source

pub fn new(qname: N, qtype: Rtype, qclass: Class) -> Self

Creates a new question from its three componets.

Source

pub fn new_in(qname: N, qtype: Rtype) -> Self

Creates a new question from a name and record type, assuming class IN.

Source§

impl<N: ToDname> Question<N>

§Field Access

Source

pub fn qname(&self) -> &N

Returns a reference to the domain nmae in the question,

Source

pub fn qtype(&self) -> Rtype

Returns the record type of the question.

Source

pub fn qclass(&self) -> Class

Returns the class of the question.

Trait Implementations§

Source§

impl<N: Clone + ToDname> Clone for Question<N>

Source§

fn clone(&self) -> Question<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<N: ToDname> Compose for Question<N>

Source§

fn compose_len(&self) -> usize

Returns the number of bytes this value will need without compression.
Source§

fn compose<B: BufMut>(&self, buf: &mut B)

Appends the uncompressed representation of this value to buf. Read more
Source§

impl<N: ToDname> Compress for Question<N>

Source§

fn compress(&self, buf: &mut Compressor) -> Result<(), ShortBuf>

Appends the wire-format representation of the value to buf. Read more
Source§

impl<N: Debug + ToDname> Debug for Question<N>

Source§

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

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

impl<N: ToDname + Display> Display for Question<N>

Source§

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

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

impl<N: ToDname> From<(N, Rtype)> for Question<N>

Source§

fn from((name, rtype): (N, Rtype)) -> Self

Converts to this type from the input type.
Source§

impl<N: ToDname> From<(N, Rtype, Class)> for Question<N>

Source§

fn from((name, rtype, class): (N, Rtype, Class)) -> Self

Converts to this type from the input type.
Source§

impl<N: Hash + ToDname> Hash for Question<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<N: Ord + ToDname> Ord for Question<N>

Source§

fn cmp(&self, other: &Question<N>) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl<N: ToDname + Parse> Parse for Question<N>

Source§

type Err = <N as Parse>::Err

The type of an error returned when parsing fails.
Source§

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

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

fn skip(parser: &mut Parser) -> Result<(), Self::Err>

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

impl<N: PartialEq + ToDname> PartialEq for Question<N>

Source§

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

impl<N: PartialOrd + ToDname> PartialOrd for Question<N>

Source§

fn partial_cmp(&self, other: &Question<N>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

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

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

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

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

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

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

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

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl<N: Eq + ToDname> Eq for Question<N>

Source§

impl<N: ToDname> StructuralPartialEq for Question<N>

Auto Trait Implementations§

§

impl<N> Freeze for Question<N>
where N: Freeze,

§

impl<N> RefUnwindSafe for Question<N>
where N: RefUnwindSafe,

§

impl<N> Send for Question<N>
where N: Send,

§

impl<N> Sync for Question<N>
where N: Sync,

§

impl<N> Unpin for Question<N>
where N: Unpin,

§

impl<N> UnwindSafe for Question<N>
where N: 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> 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
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<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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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.