Trait RecordReader

Source
pub trait RecordReader: Sized {
    const REC_TYPE: QType;
    const RLEN: u16;

    // Required methods
    fn read(
        pkt: &mut Cursor<&[u8]>,
        rlen: u16,
        qtype: QType,
    ) -> CDnsResult<Self>;
    fn wrap(self) -> DnsRdata;
}
Expand description

Trait for decoding DNS record structures from bytes read over the wire.

Required Associated Constants§

Source

const REC_TYPE: QType

A QType a record type for current instance

Source

const RLEN: u16

A data size

Required Methods§

Source

fn read(pkt: &mut Cursor<&[u8]>, rlen: u16, qtype: QType) -> CDnsResult<Self>

Read at most len bytes from the given Cursor. This cursor travels throughout the complete data — by this point, we have read the entire response into a buffer.

Source

fn wrap(self) -> DnsRdata

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.

Implementors§

Source§

impl RecordReader for RecordA

Source§

const REC_TYPE: QType = QType::A

Source§

const RLEN: u16 = 4u16

Source§

impl RecordReader for RecordAAAA

Source§

const REC_TYPE: QType = QType::AAAA

Source§

const RLEN: u16 = 16u16

Source§

impl RecordReader for RecordCNAME

Source§

const REC_TYPE: QType = QType::CNAME

Source§

const RLEN: u16 = 0u16

Source§

impl RecordReader for RecordMX

Source§

const REC_TYPE: QType = QType::MX

Source§

const RLEN: u16 = 2u16

Source§

impl RecordReader for RecordNS

Source§

const REC_TYPE: QType = QType::NS

Source§

const RLEN: u16 = 0u16

Source§

impl RecordReader for RecordOther

Source§

const REC_TYPE: QType = QType::ALL

Source§

const RLEN: u16 = 0u16

Source§

impl RecordReader for RecordPTR

Source§

const REC_TYPE: QType = QType::PTR

Source§

const RLEN: u16 = 0u16

Source§

impl RecordReader for RecordRRSIG

Source§

const REC_TYPE: QType = QType::RRSIG

Source§

const RLEN: u16 = 19u16

Source§

impl RecordReader for RecordSOA

Source§

const REC_TYPE: QType = QType::SOA

Source§

const RLEN: u16 = 0u16

Source§

impl RecordReader for RecordSRV

Source§

const REC_TYPE: QType = QType::SRV

Source§

const RLEN: u16 = 0u16

Source§

impl RecordReader for RecordTXT

Source§

const REC_TYPE: QType = QType::TXT

Source§

const RLEN: u16 = 2u16

Source§

impl RecordReader for RecordURI

Source§

const REC_TYPE: QType = QType::URI

Source§

const RLEN: u16 = 4u16