use crate::{
Result,
bytes::{Cursor, Reader, RrDataReader},
names::Name,
records::Type,
};
#[derive(Clone, Eq, PartialEq, Hash, Default, Debug, Ord, PartialOrd)]
pub struct Srv {
pub priority: u16,
pub weight: u16,
pub port: u16,
pub target: Name,
}
rr_data!(Srv, Type::SRV);
impl RrDataReader<Srv> for Cursor<'_> {
fn read_rr_data(&mut self, rd_len: usize) -> Result<Srv> {
self.window(rd_len)?;
let rr = Ok(Srv {
priority: self.u16_be()?,
weight: self.u16_be()?,
port: self.u16_be()?,
target: self.read()?,
});
self.close_window()?;
rr
}
}