Struct domain::base::message_builder::QuestionBuilder
source · pub struct QuestionBuilder<Target> { /* private fields */ }
Expand description
Builds the question section of a DNS message.
A value of this type can be acquired by calling the question
method on
any other builder type. See the module documentation for an overview of
how to build a message.
You can push questions to the end of the question section via the
push
method. It accepts various things that represent a question:
question values and references; tuples of a domain name, record type, and
class; and, using the regular class of IN, a pair of just a domain name
and record type.
Once you are finished building the question section, you can progress to
the answer section via the answer
method or finish the message via
finish
. Additionally, conversions to all other builder types are
available as well.
Implementations§
source§impl<Target: Composer> QuestionBuilder<Target>
impl<Target: Composer> QuestionBuilder<Target>
sourcepub fn push(&mut self, question: impl ComposeQuestion) -> Result<(), PushError>
pub fn push(&mut self, question: impl ComposeQuestion) -> Result<(), PushError>
Appends a question to the question section.
This method accepts anything that implements the ComposeQuestion
trait. Apart from an actual Question
or a reference to it, this can also be a tuple of a domain name,
record type, and class or, if the class is the usual IN, a pair of
just the name and type.
In other words, the options are:
use domain::base::{Dname, MessageBuilder, Question, Rtype};
use domain::base::iana::Class;
let mut msg = MessageBuilder::new_vec().question();
msg.push(Question::new_in(Dname::root_ref(), Rtype::A)).unwrap();
msg.push(&Question::new_in(Dname::root_ref(), Rtype::A)).unwrap();
msg.push((Dname::root_ref(), Rtype::A, Class::In)).unwrap();
msg.push((Dname::root_ref(), Rtype::A)).unwrap();
source§impl<Target: Composer> QuestionBuilder<Target>
impl<Target: Composer> QuestionBuilder<Target>
§Conversions
Additional conversion are available via the Deref
implementation.
sourcepub fn rewind(&mut self)
pub fn rewind(&mut self)
Rewinds to an empty question section.
All previously added questions will be lost.
sourcepub fn builder(self) -> MessageBuilder<Target>
pub fn builder(self) -> MessageBuilder<Target>
Converts the question builder into a message builder.
All questions will be dropped and the question section will be empty.
source§impl<Target: Composer> QuestionBuilder<Target>
impl<Target: Composer> QuestionBuilder<Target>
sourcepub fn question(self) -> QuestionBuilder<Target>
pub fn question(self) -> QuestionBuilder<Target>
Converts the question builder into a question builder.
In other words, doesn’t do anything.
sourcepub fn answer(self) -> AnswerBuilder<Target>
pub fn answer(self) -> AnswerBuilder<Target>
Converts the question builder into an answer builder.
Converts the question builder into an authority builder.
This will leave the answer section empty.
sourcepub fn additional(self) -> AdditionalBuilder<Target>
pub fn additional(self) -> AdditionalBuilder<Target>
Converts the question builder into an additional builder.
This will leave the answer and authority sections empty.
sourcepub fn finish(self) -> Target
pub fn finish(self) -> Target
Converts the question builder into the underlying octets builder.
This will leave the answer, authority, and additional sections empty.
sourcepub fn into_message(self) -> Message<Target::Octets>where
Target: FreezeBuilder,
pub fn into_message(self) -> Message<Target::Octets>where
Target: FreezeBuilder,
Converts the question builder into the final message.
The method will return a message atop whatever octets sequence the builder’s octets builder converts into.
source§impl<Target> QuestionBuilder<Target>
impl<Target> QuestionBuilder<Target>
sourcepub fn as_builder(&self) -> &MessageBuilder<Target>
pub fn as_builder(&self) -> &MessageBuilder<Target>
Returns a reference to the underlying message builder.
sourcepub fn as_builder_mut(&mut self) -> &mut MessageBuilder<Target>
pub fn as_builder_mut(&mut self) -> &mut MessageBuilder<Target>
Returns a mutable reference to the underlying message builder.
Methods from Deref<Target = MessageBuilder<Target>>§
sourcepub fn counts(&self) -> HeaderCounts
pub fn counts(&self) -> HeaderCounts
Return the current value of the message header counts.
sourcepub fn header_mut(&mut self) -> &mut Header
pub fn header_mut(&mut self) -> &mut Header
Returns a mutable reference to the message header for manipulations.
Trait Implementations§
source§impl<Target> AsMut<MessageBuilder<Target>> for QuestionBuilder<Target>
impl<Target> AsMut<MessageBuilder<Target>> for QuestionBuilder<Target>
source§fn as_mut(&mut self) -> &mut MessageBuilder<Target>
fn as_mut(&mut self) -> &mut MessageBuilder<Target>
source§impl<Target> AsRef<MessageBuilder<Target>> for QuestionBuilder<Target>
impl<Target> AsRef<MessageBuilder<Target>> for QuestionBuilder<Target>
source§fn as_ref(&self) -> &MessageBuilder<Target>
fn as_ref(&self) -> &MessageBuilder<Target>
source§impl<Target> AsRef<Target> for QuestionBuilder<Target>
impl<Target> AsRef<Target> for QuestionBuilder<Target>
source§impl<Target: Clone> Clone for QuestionBuilder<Target>
impl<Target: Clone> Clone for QuestionBuilder<Target>
source§fn clone(&self) -> QuestionBuilder<Target>
fn clone(&self) -> QuestionBuilder<Target>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more