use alloc::string::String;
use crate::rr::*;
+use crate::query::QueryBuf;
pub(crate) fn read_u8(inp: &mut &[u8]) -> Result<u8, ()> {
let res = *inp.get(0).ok_or(())?;
pub(crate) trait Writer { fn write(&mut self, buf: &[u8]); }
impl Writer for Vec<u8> { fn write(&mut self, buf: &[u8]) { self.extend_from_slice(buf); } }
+impl Writer for QueryBuf { fn write(&mut self, buf: &[u8]) { self.extend_from_slice(buf); } }
#[cfg(feature = "validation")]
impl Writer for ring::digest::Context { fn write(&mut self, buf: &[u8]) { self.update(buf); } }
pub(crate) fn write_name<W: Writer>(out: &mut W, name: &str) {
NS::TYPE => RR::NS(NS::read_from_data(name, data, wire_packet)?),
Txt::TYPE => RR::Txt(Txt::read_from_data(name, data, wire_packet)?),
CName::TYPE => RR::CName(CName::read_from_data(name, data, wire_packet)?),
+ DName::TYPE => RR::DName(DName::read_from_data(name, data, wire_packet)?),
TLSA::TYPE => RR::TLSA(TLSA::read_from_data(name, data, wire_packet)?),
DnsKey::TYPE => RR::DnsKey(DnsKey::read_from_data(name, data, wire_packet)?),
DS::TYPE => RR::DS(DS::read_from_data(name, data, wire_packet)?),