Compose

Trait Compose 

Source
pub trait Compose {
    // Required methods
    fn compose_len(&self) -> usize;
    fn compose<B: BufMut>(&self, buf: &mut B);
}
Expand description

A type that knows how to compose itself.

The term ‘composing’ refers to the process of creating a DNS wire-format representation of a value’s data. This happens by appending appending this data to the end of a type implementing the BufMut trait.

Required Methods§

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.

An implementation may assume that the buffer has at least as many bytes remaining as the amount a call to compose_len() would return right now. If that’s not the case, the implementation should panic. That is, the implementation can use buf‘s put_*() methods unchecked.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Compose for i8

Source§

fn compose_len(&self) -> usize

Source§

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

Source§

impl Compose for i16

Source§

fn compose_len(&self) -> usize

Source§

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

Source§

impl Compose for i32

Source§

fn compose_len(&self) -> usize

Source§

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

Source§

impl Compose for u8

Source§

fn compose_len(&self) -> usize

Source§

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

Source§

impl Compose for u16

Source§

fn compose_len(&self) -> usize

Source§

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

Source§

impl Compose for u32

Source§

fn compose_len(&self) -> usize

Source§

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

Source§

impl Compose for Ipv4Addr

Source§

fn compose_len(&self) -> usize

Source§

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

Source§

impl Compose for Ipv6Addr

Source§

fn compose_len(&self) -> usize

Source§

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

Source§

impl Compose for Bytes

Source§

fn compose_len(&self) -> usize

Source§

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

Source§

impl Compose for [u8]

Source§

fn compose_len(&self) -> usize

Source§

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

Source§

impl<'a, C: Compose> Compose for &'a C

Source§

fn compose_len(&self) -> usize

Source§

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

Implementors§

Source§

impl Compose for Class

Source§

impl Compose for DigestAlg

Source§

impl Compose for Nsec3HashAlg

Source§

impl Compose for OptionCode

Source§

impl Compose for Rtype

Source§

impl Compose for SecAlg

Source§

impl Compose for UncertainDname

Source§

impl Compose for AllOptData

Source§

impl Compose for A

Source§

impl Compose for Hinfo

Source§

impl Compose for Null

Source§

impl Compose for Txt

Source§

impl Compose for Wks

Source§

impl Compose for Aaaa

Source§

impl Compose for Dnskey

Source§

impl Compose for Ds

Source§

impl Compose for Nsec

Source§

impl Compose for Rrsig

Source§

impl Compose for RtypeBitmap

Source§

impl Compose for Nsec3

Source§

impl Compose for Nsec3param

Source§

impl Compose for CharStr

Source§

impl Compose for HeaderSection

Source§

impl Compose for Dname

Source§

impl Compose for Label

Source§

impl Compose for ParsedDname

Source§

impl Compose for RelativeDname

Source§

impl Compose for Nsid

Source§

impl Compose for Dau

Source§

impl Compose for Dhu

Source§

impl Compose for N3u

Source§

impl Compose for Expire

Source§

impl Compose for TcpKeepalive

Source§

impl Compose for Padding

Source§

impl Compose for ClientSubnet

Source§

impl Compose for domain_core::bits::opt::rfc7901::Chain

Source§

impl Compose for KeyTag

Source§

impl Compose for Opt

Source§

impl Compose for OptHeader

Source§

impl Compose for OptionHeader

Source§

impl Compose for UnknownOptData

Source§

impl Compose for UnknownRecordData

Source§

impl Compose for Serial

Source§

impl<L: ToRelativeDname, R: Compose> Compose for domain_core::bits::name::Chain<L, R>

Source§

impl<N> Compose for AllRecordData<N>
where N: Compose,

Source§

impl<N> Compose for MasterRecordData<N>
where N: Compose,

Source§

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

Source§

impl<N: ToDname, D: RecordData> Compose for Record<N, D>

Source§

impl<N: Compose> Compose for Cname<N>

Source§

impl<N: Compose> Compose for Mb<N>

Source§

impl<N: Compose> Compose for Md<N>

Source§

impl<N: Compose> Compose for Mf<N>

Source§

impl<N: Compose> Compose for Mg<N>

Source§

impl<N: Compose> Compose for Minfo<N>

Source§

impl<N: Compose> Compose for Mr<N>

Source§

impl<N: Compose> Compose for Mx<N>

Source§

impl<N: Compose> Compose for Ns<N>

Source§

impl<N: Compose> Compose for Ptr<N>

Source§

impl<N: Compose> Compose for Soa<N>

Source§

impl<N: Compose> Compose for Srv<N>

Source§

impl<N: Compose> Compose for RecordHeader<N>

Source§

impl<R: ToDname> Compose for domain_core::bits::name::Chain<UncertainDname, R>