Struct domain::base::message_builder::AnswerBuilder
source · [−]pub struct AnswerBuilder<Target> { /* private fields */ }
Expand description
Builds the answer section of a DNS message.
A value of this type can be acquired by calling the answer
method on
any other builder type. See the module documentation for an overview of
how to build a message.
You can push records to the end of the answer section via the push
method. It accepts various things that represent resource records: record
values and references, tuples of an owner domain name, a class, TTL, and
record data, as well as tuples of just the owner, TTL, and data, assuming
the class of IN.
Once you are finished building the answer section, you can progress to
the authority section via the authority
method or finish the message
via finish
. Additionally, conversions to all other builder types are
available as well.
Implementations
sourceimpl<Target: OctetsBuilder + AsMut<[u8]>> AnswerBuilder<Target>
impl<Target: OctetsBuilder + AsMut<[u8]>> AnswerBuilder<Target>
sourcepub fn push(&mut self, record: impl AsRecord) -> Result<(), ShortBuf>
pub fn push(&mut self, record: impl AsRecord) -> Result<(), ShortBuf>
Appends a record to the answer section.
This methods accepts anything that implements the AsRecord
trait.
Apart from record values and references, this are tuples of the owner
domain name, optionally the class (which is taken to be IN if
missing), the TTL, and record data.
In other words, you can do the following things:
use domain::base::{Dname, MessageBuilder, Record, Rtype};
use domain::base::iana::Class;
use domain::rdata::A;
let mut msg = MessageBuilder::new_vec().answer();
let record = Record::new(
Dname::root_ref(), Class::In, 86400, A::from_octets(192, 0, 2, 1)
);
msg.push(&record).unwrap();
msg.push(record).unwrap();
msg.push(
(Dname::root_ref(), Class::In, 86400, A::from_octets(192, 0, 2, 1))
).unwrap();
msg.push(
(Dname::root_ref(), 86400, A::from_octets(192, 0, 2, 1))
).unwrap();
sourceimpl<Target: OctetsBuilder + AsMut<[u8]>> AnswerBuilder<Target>
impl<Target: OctetsBuilder + AsMut<[u8]>> AnswerBuilder<Target>
Conversions
Additional conversion are available via the Deref
implementation.
sourcepub fn rewind(&mut self)
pub fn rewind(&mut self)
Rewinds to an empty answer section.
All previously added answers will be lost.
sourcepub fn builder(self) -> MessageBuilder<Target>
pub fn builder(self) -> MessageBuilder<Target>
Converts the answer builder into a message builder.
All questions and answers will be dropped and all sections will be empty.
sourcepub fn question(self) -> QuestionBuilder<Target>
pub fn question(self) -> QuestionBuilder<Target>
Converts the answer builder into a question builder.
All answers will be dropped. All previously added questions will, however, remain.
sourceimpl<Target: OctetsBuilder> AnswerBuilder<Target>
impl<Target: OctetsBuilder> AnswerBuilder<Target>
sourcepub fn answer(self) -> AnswerBuilder<Target>
pub fn answer(self) -> AnswerBuilder<Target>
Converts the answer builder into an answer builder.
This doesn’t do anything, really.
Converts the answer builder into an authority builder.
sourcepub fn additional(self) -> AdditionalBuilder<Target>
pub fn additional(self) -> AdditionalBuilder<Target>
Converts the answer builder into an additional builder.
This will leave the authority section empty.
sourcepub fn finish(self) -> Target
pub fn finish(self) -> Target
Converts the answer builder into the underlying octets builder.
This will leave the authority and additional sections empty.
sourcepub fn into_message(self) -> Message<Target::Octets>
pub fn into_message(self) -> Message<Target::Octets>
Converts the answer builder into the final message.
The method will return a message atop whatever octets sequence the builder’s octets builder converts into.
sourceimpl<Target> AnswerBuilder<Target>
impl<Target> AnswerBuilder<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
sourceimpl<Target> AsMut<MessageBuilder<Target>> for AnswerBuilder<Target>
impl<Target> AsMut<MessageBuilder<Target>> for AnswerBuilder<Target>
sourcefn as_mut(&mut self) -> &mut MessageBuilder<Target>
fn as_mut(&mut self) -> &mut MessageBuilder<Target>
Converts this type into a mutable reference of the (usually inferred) input type.
sourceimpl<Target> AsRef<MessageBuilder<Target>> for AnswerBuilder<Target>
impl<Target> AsRef<MessageBuilder<Target>> for AnswerBuilder<Target>
sourcefn as_ref(&self) -> &MessageBuilder<Target>
fn as_ref(&self) -> &MessageBuilder<Target>
Converts this type into a shared reference of the (usually inferred) input type.
sourceimpl<Target> AsRef<Target> for AnswerBuilder<Target>
impl<Target> AsRef<Target> for AnswerBuilder<Target>
sourceimpl<Target: Clone> Clone for AnswerBuilder<Target>
impl<Target: Clone> Clone for AnswerBuilder<Target>
sourcefn clone(&self) -> AnswerBuilder<Target>
fn clone(&self) -> AnswerBuilder<Target>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl<Target: Debug> Debug for AnswerBuilder<Target>
impl<Target: Debug> Debug for AnswerBuilder<Target>
sourceimpl<Target> Deref for AnswerBuilder<Target>
impl<Target> Deref for AnswerBuilder<Target>
type Target = MessageBuilder<Target>
type Target = MessageBuilder<Target>
The resulting type after dereferencing.
sourceimpl<Target> DerefMut for AnswerBuilder<Target>
impl<Target> DerefMut for AnswerBuilder<Target>
sourceimpl<Target> From<AdditionalBuilder<Target>> for AnswerBuilder<Target>where
Target: OctetsBuilder + AsMut<[u8]>,
impl<Target> From<AdditionalBuilder<Target>> for AnswerBuilder<Target>where
Target: OctetsBuilder + AsMut<[u8]>,
sourcefn from(src: AdditionalBuilder<Target>) -> Self
fn from(src: AdditionalBuilder<Target>) -> Self
Converts to this type from the input type.
sourceimpl<Target> From<AnswerBuilder<Target>> for AdditionalBuilder<Target>where
Target: OctetsBuilder,
impl<Target> From<AnswerBuilder<Target>> for AdditionalBuilder<Target>where
Target: OctetsBuilder,
sourcefn from(src: AnswerBuilder<Target>) -> Self
fn from(src: AnswerBuilder<Target>) -> Self
Converts to this type from the input type.
sourceimpl<Target> From<AnswerBuilder<Target>> for AuthorityBuilder<Target>where
Target: OctetsBuilder,
impl<Target> From<AnswerBuilder<Target>> for AuthorityBuilder<Target>where
Target: OctetsBuilder,
sourcefn from(src: AnswerBuilder<Target>) -> Self
fn from(src: AnswerBuilder<Target>) -> Self
Converts to this type from the input type.
sourceimpl<Target> From<AnswerBuilder<Target>> for MessageBuilder<Target>where
Target: OctetsBuilder + AsMut<[u8]>,
impl<Target> From<AnswerBuilder<Target>> for MessageBuilder<Target>where
Target: OctetsBuilder + AsMut<[u8]>,
sourcefn from(src: AnswerBuilder<Target>) -> Self
fn from(src: AnswerBuilder<Target>) -> Self
Converts to this type from the input type.
sourceimpl<Target> From<AnswerBuilder<Target>> for QuestionBuilder<Target>where
Target: OctetsBuilder + AsMut<[u8]>,
impl<Target> From<AnswerBuilder<Target>> for QuestionBuilder<Target>where
Target: OctetsBuilder + AsMut<[u8]>,
sourcefn from(src: AnswerBuilder<Target>) -> Self
fn from(src: AnswerBuilder<Target>) -> Self
Converts to this type from the input type.
sourceimpl<Target> From<AuthorityBuilder<Target>> for AnswerBuilder<Target>where
Target: OctetsBuilder + AsMut<[u8]>,
impl<Target> From<AuthorityBuilder<Target>> for AnswerBuilder<Target>where
Target: OctetsBuilder + AsMut<[u8]>,
sourcefn from(src: AuthorityBuilder<Target>) -> Self
fn from(src: AuthorityBuilder<Target>) -> Self
Converts to this type from the input type.
sourceimpl<Target> From<MessageBuilder<Target>> for AnswerBuilder<Target>where
Target: OctetsBuilder,
impl<Target> From<MessageBuilder<Target>> for AnswerBuilder<Target>where
Target: OctetsBuilder,
sourcefn from(src: MessageBuilder<Target>) -> Self
fn from(src: MessageBuilder<Target>) -> Self
Converts to this type from the input type.
sourceimpl<Target> From<QuestionBuilder<Target>> for AnswerBuilder<Target>where
Target: OctetsBuilder,
impl<Target> From<QuestionBuilder<Target>> for AnswerBuilder<Target>where
Target: OctetsBuilder,
sourcefn from(src: QuestionBuilder<Target>) -> Self
fn from(src: QuestionBuilder<Target>) -> Self
Converts to this type from the input type.
sourceimpl<Target> RecordSectionBuilder for AnswerBuilder<Target>where
Target: OctetsBuilder + AsMut<[u8]>,
impl<Target> RecordSectionBuilder for AnswerBuilder<Target>where
Target: OctetsBuilder + AsMut<[u8]>,
Auto Trait Implementations
impl<Target> RefUnwindSafe for AnswerBuilder<Target>where
Target: RefUnwindSafe,
impl<Target> Send for AnswerBuilder<Target>where
Target: Send,
impl<Target> Sync for AnswerBuilder<Target>where
Target: Sync,
impl<Target> Unpin for AnswerBuilder<Target>where
Target: Unpin,
impl<Target> UnwindSafe for AnswerBuilder<Target>where
Target: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Source, Target> OctetsInto<Target> for Sourcewhere
Target: OctetsFrom<Source>,
impl<Source, Target> OctetsInto<Target> for Sourcewhere
Target: OctetsFrom<Source>,
sourcefn octets_into(self) -> Result<Target, ShortBuf>
fn octets_into(self) -> Result<Target, ShortBuf>
Performs the conversion.