Struct domain::base::message_builder::AuthorityBuilder
source · pub struct AuthorityBuilder<Target> { /* private fields */ }
Expand description
Builds the authority section of a DNS message.
A value of this type can be acquired by calling the authority
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 authority 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 authority section, you can progress to
the additional section via the additional
method or finish the message
via finish
. Additionally, conversions to all other builder types are
available as well.
Implementations§
source§impl<Target: Composer> AuthorityBuilder<Target>
impl<Target: Composer> AuthorityBuilder<Target>
sourcepub fn push(&mut self, record: impl ComposeRecord) -> Result<(), PushError>
pub fn push(&mut self, record: impl ComposeRecord) -> Result<(), PushError>
Appends a record to the authority section.
This methods accepts anything that implements the ComposeRecord
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, Ttl};
use domain::base::iana::Class;
use domain::rdata::A;
let mut msg = MessageBuilder::new_vec().authority();
let record = Record::new(
Dname::root_ref(), Class::In, Ttl::from_secs(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();
source§impl<Target: Composer> AuthorityBuilder<Target>
impl<Target: Composer> AuthorityBuilder<Target>
§Conversions
Additional conversion methods are available via the Deref
implementation.
sourcepub fn rewind(&mut self)
pub fn rewind(&mut self)
Rewinds to an empty authority section.
All previously added authority records will be lost.
sourcepub fn builder(self) -> MessageBuilder<Target>
pub fn builder(self) -> MessageBuilder<Target>
Converts the authority builder into a message builder.
All questions, answer and authority records will be dropped and all sections will be empty.
sourcepub fn question(self) -> QuestionBuilder<Target>
pub fn question(self) -> QuestionBuilder<Target>
Converts the authority builder into a question builder.
All authority and answer records will be dropped. All previously added questions will, however, remain.
sourcepub fn answer(self) -> AnswerBuilder<Target>
pub fn answer(self) -> AnswerBuilder<Target>
Converts the authority builder into an answer builder.
All authority records will be dropped. All previously added questions and answer records will, however, remain.
source§impl<Target: Composer> AuthorityBuilder<Target>
impl<Target: Composer> AuthorityBuilder<Target>
Converts the authority builder into an authority builder.
This is identical to the identity function.
sourcepub fn additional(self) -> AdditionalBuilder<Target>
pub fn additional(self) -> AdditionalBuilder<Target>
Converts the authority builder into an additional builder.
sourcepub fn finish(self) -> Target
pub fn finish(self) -> Target
Converts the authority builder into the underlying octets builder.
This will leave the additional section 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 authority 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> AuthorityBuilder<Target>
impl<Target> AuthorityBuilder<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 AuthorityBuilder<Target>
impl<Target> AsMut<MessageBuilder<Target>> for AuthorityBuilder<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 AuthorityBuilder<Target>
impl<Target> AsRef<MessageBuilder<Target>> for AuthorityBuilder<Target>
source§fn as_ref(&self) -> &MessageBuilder<Target>
fn as_ref(&self) -> &MessageBuilder<Target>
source§impl<Target> AsRef<Target> for AuthorityBuilder<Target>
impl<Target> AsRef<Target> for AuthorityBuilder<Target>
source§impl<Target: Clone> Clone for AuthorityBuilder<Target>
impl<Target: Clone> Clone for AuthorityBuilder<Target>
source§fn clone(&self) -> AuthorityBuilder<Target>
fn clone(&self) -> AuthorityBuilder<Target>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<Target: Debug> Debug for AuthorityBuilder<Target>
impl<Target: Debug> Debug for AuthorityBuilder<Target>
source§impl<Target> Deref for AuthorityBuilder<Target>
impl<Target> Deref for AuthorityBuilder<Target>
source§impl<Target> DerefMut for AuthorityBuilder<Target>
impl<Target> DerefMut for AuthorityBuilder<Target>
source§impl<Target> From<AdditionalBuilder<Target>> for AuthorityBuilder<Target>where
Target: Composer,
impl<Target> From<AdditionalBuilder<Target>> for AuthorityBuilder<Target>where
Target: Composer,
source§fn from(src: AdditionalBuilder<Target>) -> Self
fn from(src: AdditionalBuilder<Target>) -> Self
source§impl<Target> From<AnswerBuilder<Target>> for AuthorityBuilder<Target>where
Target: Composer,
impl<Target> From<AnswerBuilder<Target>> for AuthorityBuilder<Target>where
Target: Composer,
source§fn from(src: AnswerBuilder<Target>) -> Self
fn from(src: AnswerBuilder<Target>) -> Self
source§impl<Target> From<AuthorityBuilder<Target>> for AdditionalBuilder<Target>where
Target: Composer,
impl<Target> From<AuthorityBuilder<Target>> for AdditionalBuilder<Target>where
Target: Composer,
source§fn from(src: AuthorityBuilder<Target>) -> Self
fn from(src: AuthorityBuilder<Target>) -> Self
source§impl<Target> From<AuthorityBuilder<Target>> for AnswerBuilder<Target>where
Target: Composer,
impl<Target> From<AuthorityBuilder<Target>> for AnswerBuilder<Target>where
Target: Composer,
source§fn from(src: AuthorityBuilder<Target>) -> Self
fn from(src: AuthorityBuilder<Target>) -> Self
source§impl<Target> From<AuthorityBuilder<Target>> for MessageBuilder<Target>where
Target: Composer,
impl<Target> From<AuthorityBuilder<Target>> for MessageBuilder<Target>where
Target: Composer,
source§fn from(src: AuthorityBuilder<Target>) -> Self
fn from(src: AuthorityBuilder<Target>) -> Self
source§impl<Target> From<AuthorityBuilder<Target>> for QuestionBuilder<Target>where
Target: Composer,
impl<Target> From<AuthorityBuilder<Target>> for QuestionBuilder<Target>where
Target: Composer,
source§fn from(src: AuthorityBuilder<Target>) -> Self
fn from(src: AuthorityBuilder<Target>) -> Self
source§impl<Target> From<MessageBuilder<Target>> for AuthorityBuilder<Target>where
Target: Composer,
impl<Target> From<MessageBuilder<Target>> for AuthorityBuilder<Target>where
Target: Composer,
source§fn from(src: MessageBuilder<Target>) -> Self
fn from(src: MessageBuilder<Target>) -> Self
source§impl<Target> From<QuestionBuilder<Target>> for AuthorityBuilder<Target>where
Target: Composer,
impl<Target> From<QuestionBuilder<Target>> for AuthorityBuilder<Target>where
Target: Composer,
source§fn from(src: QuestionBuilder<Target>) -> Self
fn from(src: QuestionBuilder<Target>) -> Self
source§impl<Target: Composer> RecordSectionBuilder<Target> for AuthorityBuilder<Target>
impl<Target: Composer> RecordSectionBuilder<Target> for AuthorityBuilder<Target>
Auto Trait Implementations§
impl<Target> Freeze for AuthorityBuilder<Target>where
Target: Freeze,
impl<Target> RefUnwindSafe for AuthorityBuilder<Target>where
Target: RefUnwindSafe,
impl<Target> Send for AuthorityBuilder<Target>where
Target: Send,
impl<Target> Sync for AuthorityBuilder<Target>where
Target: Sync,
impl<Target> Unpin for AuthorityBuilder<Target>where
Target: Unpin,
impl<Target> UnwindSafe for AuthorityBuilder<Target>where
Target: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)