dns_message_parser/encode/rr/
enums.rs1use 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);