dns_parser/rdata/
a.rs

1use std::net::Ipv4Addr;
2
3use Error;
4use byteorder::{BigEndian, ByteOrder};
5
6#[derive(Debug, PartialEq, Eq, Clone, Copy)]
7pub struct Record(pub Ipv4Addr);
8
9impl<'a> super::Record<'a> for Record {
10
11    const TYPE: isize = 1;
12
13    fn parse(rdata: &'a [u8], _original: &'a [u8]) -> super::RDataResult<'a> {
14        if rdata.len() != 4 {
15            return Err(Error::WrongRdataLength);
16        }
17        let address = Ipv4Addr::from(BigEndian::read_u32(rdata));
18        let record = Record(address);
19        Ok(super::RData::A(record))
20    }
21}