use crate::base::cmp::CanonicalOrd;
use crate::base::name::{ParsedName, ToName};
use crate::base::wire::ParseError;
use core::cmp::Ordering;
use core::str::FromStr;
use core::{fmt, hash, str};
use octseq::octets::{Octets, OctetsFrom};
use octseq::parse::Parser;
name_type_well_known! {
(Cname, CNAME, cname, into_cname)
}
name_type_well_known! {
(Mb, MB, madname, into_madname)
}
name_type_well_known! {
(Md, MD, madname, into_madname)
}
name_type_well_known! {
(Mf, MF, madname, into_madname)
}
name_type_well_known! {
(Mg, MG, madname, into_madname)
}
name_type_well_known! {
(Mr, MR, newname, into_newname)
}
name_type_well_known! {
(Ns, NS, nsdname, into_nsdname)
}
name_type_well_known! {
(Ptr, PTR, ptrdname, into_ptrdname)
}
#[cfg(test)]
#[cfg(all(feature = "std", feature = "bytes"))]
mod test {
use super::*;
use crate::base::name::Name;
use crate::base::rdata::test::{
test_compose_parse, test_rdlen, test_scan,
};
use std::vec::Vec;
#[test]
#[allow(clippy::redundant_closure)] fn cname_compose_parse_scan() {
let rdata =
Cname::<Name<Vec<u8>>>::from_str("www.example.com").unwrap();
test_rdlen(&rdata);
test_compose_parse(&rdata, |parser| Cname::parse(parser));
test_scan(&["www.example.com"], Cname::scan, &rdata);
}
}