1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
use anyhow::Result; use trust_dns_proto::rr::Name; pub fn suffixes(mut name: Name) -> Vec<Name> { let mut names = Vec::new(); loop { names.push(name.clone()); if name.is_root() { break; } else { name = name.base_name(); } } names } pub fn absolute(name: Name) -> Result<Name> { let root = &Name::root(); let absolute = name.append_name(root)?; Ok(absolute) }