[−][src]Struct domain::base::message_builder::MessageBuilder
Starts building a DNS message.
This type wraps an OctetsBuilder
and starts the process of building a
message. It allows access to the header section. The message builder can
be traded in for any section builder or the underlying octets builder.
For more details see the module documentation.
Implementations
impl<Target: OctetsBuilder> MessageBuilder<Target>
[src]
pub fn from_target(target: Target) -> Result<Self, ShortBuf>
[src]
Creates a new message builder using the given target.
The target must be an OctetsBuilder
. It will be truncated to zero
size before appending the header section. That is, all data that was
in the builder before will be lost.
The function will result in an error if the builder doesn’t have enough space for the header section.
impl MessageBuilder<Vec<u8>>
[src]
impl MessageBuilder<StreamTarget<Vec<u8>>>
[src]
pub fn new_stream_vec() -> Self
[src]
Creates a new builder for a streamable message atop a Vec<u8>
.
impl<Target: OctetsBuilder> MessageBuilder<Target>
[src]
pub fn start_answer<Octets>(
self,
msg: &Message<Octets>,
rcode: Rcode
) -> Result<AnswerBuilder<Target>, ShortBuf> where
Octets: AsRef<[u8]>,
&'a Octets: OctetsRef,
[src]
self,
msg: &Message<Octets>,
rcode: Rcode
) -> Result<AnswerBuilder<Target>, ShortBuf> where
Octets: AsRef<[u8]>,
&'a Octets: OctetsRef,
Starts creating an answer for the given message.
Specifically, this sets the ID, QR, OPCODE, RD, and RCODE fields in the header and attempts to push the message’s questions to the builder. If iterating of the questions fails, it adds what it can.
The method converts the message builder into an answer builder ready to receive the answer for the question.
pub fn request_axfr<N: ToDname>(
self,
apex: N
) -> Result<AnswerBuilder<Target>, ShortBuf>
[src]
self,
apex: N
) -> Result<AnswerBuilder<Target>, ShortBuf>
Creates an AXFR request for the given domain.
Sets a random ID, pushes the domain and the AXFR record type into the question section, and converts the builder into an answer builder.
impl<Target: OctetsBuilder> MessageBuilder<Target>
[src]
pub fn header(&self) -> Header
[src]
Return the current value of the message header.
pub fn header_mut(&mut self) -> &mut Header
[src]
Returns a mutable reference to the message header for manipulations.
pub fn counts(&self) -> HeaderCounts
[src]
Return the current value of the message header counts.
impl<Target: OctetsBuilder> MessageBuilder<Target>
[src]
pub fn builder(self) -> MessageBuilder<Target>
[src]
Converts the message builder into a message builder
This is a no-op.
pub fn question(self) -> QuestionBuilder<Target>
[src]
Converts the message builder into a question builder.
pub fn answer(self) -> AnswerBuilder<Target>
[src]
Converts the message builder into an answer builder.
This will leave the question section empty.
pub fn authority(self) -> AuthorityBuilder<Target>
[src]
Converts the message builder into an authority builder.
This will leave the question and answer sections empty.
pub fn additional(self) -> AdditionalBuilder<Target>
[src]
Converts the message builder into an additional builder.
This will leave the question, answer, and authority sections empty.
pub fn finish(self) -> Target
[src]
Converts the message into the underlying octets builder.
This will leave the all sections empty.
pub fn into_message(self) -> Message<Target::Octets> where
Target: IntoOctets,
[src]
Target: IntoOctets,
Converts the builder into a message.
The method will return a message atop whatever octets sequence the builder’s octets builder converts into.
impl<Target> MessageBuilder<Target>
[src]
pub fn as_target(&self) -> &Target
[src]
Returns a reference to the underlying octets builder.
pub fn as_slice(&self) -> &[u8] where
Target: AsRef<[u8]>,
[src]
Target: AsRef<[u8]>,
Returns an octets slice of the octets assembled so far.
pub fn as_message(&self) -> Message<&[u8]> where
Target: AsRef<[u8]>,
[src]
Target: AsRef<[u8]>,
Returns a message atop for the octets assembled so far.
This message is atop the octets slices derived from the builder, so it can be created cheaply.
Trait Implementations
impl<Target> AsMut<MessageBuilder<Target>> for QuestionBuilder<Target>
[src]
fn as_mut(&mut self) -> &mut MessageBuilder<Target>
[src]
impl<Target> AsMut<MessageBuilder<Target>> for AnswerBuilder<Target>
[src]
fn as_mut(&mut self) -> &mut MessageBuilder<Target>
[src]
impl<Target> AsMut<MessageBuilder<Target>> for AuthorityBuilder<Target>
[src]
fn as_mut(&mut self) -> &mut MessageBuilder<Target>
[src]
impl<Target> AsMut<MessageBuilder<Target>> for AdditionalBuilder<Target>
[src]
fn as_mut(&mut self) -> &mut MessageBuilder<Target>
[src]
impl<Target: AsRef<[u8]>> AsRef<[u8]> for MessageBuilder<Target>
[src]
impl<Target> AsRef<MessageBuilder<Target>> for QuestionBuilder<Target>
[src]
fn as_ref(&self) -> &MessageBuilder<Target>
[src]
impl<Target> AsRef<MessageBuilder<Target>> for AnswerBuilder<Target>
[src]
fn as_ref(&self) -> &MessageBuilder<Target>
[src]
impl<Target> AsRef<MessageBuilder<Target>> for AuthorityBuilder<Target>
[src]
fn as_ref(&self) -> &MessageBuilder<Target>
[src]
impl<Target> AsRef<MessageBuilder<Target>> for AdditionalBuilder<Target>
[src]
fn as_ref(&self) -> &MessageBuilder<Target>
[src]
impl<Target> AsRef<Target> for MessageBuilder<Target>
[src]
impl<Target: Clone> Clone for MessageBuilder<Target>
[src]
fn clone(&self) -> MessageBuilder<Target>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<Target: Debug> Debug for MessageBuilder<Target>
[src]
impl<Target> From<AdditionalBuilder<Target>> for MessageBuilder<Target> where
Target: OctetsBuilder,
[src]
Target: OctetsBuilder,
fn from(src: AdditionalBuilder<Target>) -> Self
[src]
impl<Target> From<AnswerBuilder<Target>> for MessageBuilder<Target> where
Target: OctetsBuilder,
[src]
Target: OctetsBuilder,
fn from(src: AnswerBuilder<Target>) -> Self
[src]
impl<Target> From<AuthorityBuilder<Target>> for MessageBuilder<Target> where
Target: OctetsBuilder,
[src]
Target: OctetsBuilder,
fn from(src: AuthorityBuilder<Target>) -> Self
[src]
impl<Target> From<MessageBuilder<Target>> for QuestionBuilder<Target> where
Target: OctetsBuilder,
[src]
Target: OctetsBuilder,
fn from(src: MessageBuilder<Target>) -> Self
[src]
impl<Target> From<MessageBuilder<Target>> for AnswerBuilder<Target> where
Target: OctetsBuilder,
[src]
Target: OctetsBuilder,
fn from(src: MessageBuilder<Target>) -> Self
[src]
impl<Target> From<MessageBuilder<Target>> for AuthorityBuilder<Target> where
Target: OctetsBuilder,
[src]
Target: OctetsBuilder,
fn from(src: MessageBuilder<Target>) -> Self
[src]
impl<Target> From<MessageBuilder<Target>> for AdditionalBuilder<Target> where
Target: OctetsBuilder,
[src]
Target: OctetsBuilder,
fn from(src: MessageBuilder<Target>) -> Self
[src]
impl<Target> From<QuestionBuilder<Target>> for MessageBuilder<Target> where
Target: OctetsBuilder,
[src]
Target: OctetsBuilder,
fn from(src: QuestionBuilder<Target>) -> Self
[src]
Auto Trait Implementations
impl<Target> RefUnwindSafe for MessageBuilder<Target> where
Target: RefUnwindSafe,
Target: RefUnwindSafe,
impl<Target> Send for MessageBuilder<Target> where
Target: Send,
Target: Send,
impl<Target> Sync for MessageBuilder<Target> where
Target: Sync,
Target: Sync,
impl<Target> Unpin for MessageBuilder<Target> where
Target: Unpin,
Target: Unpin,
impl<Target> UnwindSafe for MessageBuilder<Target> where
Target: UnwindSafe,
Target: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
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>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
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>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,