dns_message_parser/encode/rr/
enums.rs

1use crate::encode::Encoder;
2use crate::rr::{Class, Type, RR};
3use crate::EncodeResult;
4
5impl Encoder {
6    #[inline]
7    pub(super) fn rr_type(&mut self, type_: &Type) {
8        self.u16(*type_ as u16);
9    }
10
11    #[inline]
12    pub(super) fn rr_class(&mut self, class: &Class) {
13        self.u16(*class as u16);
14    }
15
16    pub(crate) fn rr(&mut self, rr: &RR) -> EncodeResult<()> {
17        match rr {
18            RR::A(a) => self.rr_a(a),
19            RR::NS(ns) => self.rr_ns(ns),
20            RR::MD(md) => self.rr_md(md),
21            RR::MF(mf) => self.rr_mf(mf),
22            RR::CNAME(cname) => self.rr_cname(cname),
23            RR::SOA(soa) => self.rr_soa(soa),
24            RR::MB(mb) => self.rr_mb(mb),
25            RR::MG(mg) => self.rr_mg(mg),
26            RR::MR(mr) => self.rr_mr(mr),
27            RR::NULL(null) => self.rr_null(null),
28            RR::WKS(wks) => self.rr_wks(wks),
29            RR::PTR(ptr) => self.rr_ptr(ptr),
30            RR::HINFO(hinfo) => self.rr_hinfo(hinfo),
31            RR::MINFO(minfo) => self.rr_minfo(minfo),
32            RR::MX(mx) => self.rr_mx(mx),
33            RR::TXT(txt) => self.rr_txt(txt),
34            RR::RP(rp) => self.rr_rp(rp),
35            RR::AFSDB(afsdb) => self.rr_afsdb(afsdb),
36            RR::X25(x25) => self.rr_x25(x25),
37            RR::ISDN(isdn) => self.rr_isdn(isdn),
38            RR::RT(rt) => self.rr_rt(rt),
39            RR::NSAP(nsap) => self.rr_nsap(nsap),
40            RR::GPOS(gpos) => self.rr_gpos(gpos),
41            RR::LOC(loc) => self.rr_loc(loc),
42            RR::PX(px) => self.rr_px(px),
43            RR::KX(kx) => self.rr_kx(kx),
44            RR::SRV(srv) => self.rr_srv(srv),
45            RR::AAAA(aaaa) => self.rr_aaaa(aaaa),
46            RR::SSHFP(sshfp) => self.rr_sshfp(sshfp),
47            RR::DNAME(dname) => self.rr_dname(dname),
48            RR::OPT(opt) => self.rr_opt(opt),
49            RR::APL(apl) => self.rr_apl(apl),
50            RR::NID(n_id) => self.rr_nid(n_id),
51            RR::L32(l_32) => self.rr_l32(l_32),
52            RR::L64(l_64) => self.rr_l64(l_64),
53            RR::LP(lp) => self.rr_lp(lp),
54            RR::EUI48(eui_48) => self.rr_eui48(eui_48),
55            RR::EUI64(eui_64) => self.rr_eui64(eui_64),
56            RR::URI(uri) => self.rr_uri(uri),
57            RR::EID(eid) => self.rr_eid(eid),
58            RR::NIMLOC(nimloc) => self.rr_nimloc(nimloc),
59            RR::DNSKEY(dnskey) => self.rr_dnskey(dnskey),
60            RR::DS(ds) => self.rr_ds(ds),
61            RR::CAA(caa) => self.rr_caa(caa),
62            RR::SVCB(svcb) => self.rr_service_binding(svcb),
63            RR::HTTPS(https) => self.rr_service_binding(https),
64        }
65    }
66}
67
68impl_encode_without_result!(Type, rr_type);
69
70impl_encode_without_result!(Class, rr_class);
71
72impl_encode!(RR, rr);