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}