use std::{
fmt::{Debug, Display},
str::FromStr,
};
pub(super) mod private {
use crate::{Result, bytes::Cursor};
pub trait DNameBase: Sized {
fn as_str(&self) -> &str;
fn len(&self) -> usize;
fn is_empty(&self) -> bool;
fn clear(&mut self);
fn append_label_bytes(&mut self, label: &[u8]) -> Result<()>;
fn append_label(&mut self, label: &str) -> Result<()>;
fn set_root(&mut self);
fn from_cursor(c: &mut Cursor<'_>) -> Result<Self>;
}
}
pub trait DName:
private::DNameBase + PartialOrd + Ord + PartialEq + Eq + FromStr + Debug + Display + Clone + Default
{
}