use bytes::{Buf, BufMut}; use error_stack::{report, ResultExt}; use internment::ArcIntern; use proptest::arbitrary::Arbitrary; use proptest::char::CharStrategy; use proptest::strategy::{BoxedStrategy, Strategy}; use std::borrow::Cow; use std::fmt; use std::hash::Hash; use std::ops::{Range, RangeInclusive}; use std::str::FromStr; use thiserror::Error; #[derive(Clone, Hash, PartialEq, Eq)] pub struct Name { labels: Vec