1// Code generated by "go run compress_generate.go"; DO NOT EDIT.
2
3package dns
4
5func compressionLenHelperType(c map[string]int, r RR, initLen int) int {
6	currentLen := initLen
7	switch x := r.(type) {
8	case *AFSDB:
9		currentLen -= len(x.Hostname) + 1
10		currentLen += compressionLenHelper(c, x.Hostname, currentLen)
11	case *CNAME:
12		currentLen -= len(x.Target) + 1
13		currentLen += compressionLenHelper(c, x.Target, currentLen)
14	case *DNAME:
15		currentLen -= len(x.Target) + 1
16		currentLen += compressionLenHelper(c, x.Target, currentLen)
17	case *HIP:
18		for i := range x.RendezvousServers {
19			currentLen -= len(x.RendezvousServers[i]) + 1
20		}
21		for i := range x.RendezvousServers {
22			currentLen += compressionLenHelper(c, x.RendezvousServers[i], currentLen)
23		}
24	case *KX:
25		currentLen -= len(x.Exchanger) + 1
26		currentLen += compressionLenHelper(c, x.Exchanger, currentLen)
27	case *LP:
28		currentLen -= len(x.Fqdn) + 1
29		currentLen += compressionLenHelper(c, x.Fqdn, currentLen)
30	case *MB:
31		currentLen -= len(x.Mb) + 1
32		currentLen += compressionLenHelper(c, x.Mb, currentLen)
33	case *MD:
34		currentLen -= len(x.Md) + 1
35		currentLen += compressionLenHelper(c, x.Md, currentLen)
36	case *MF:
37		currentLen -= len(x.Mf) + 1
38		currentLen += compressionLenHelper(c, x.Mf, currentLen)
39	case *MG:
40		currentLen -= len(x.Mg) + 1
41		currentLen += compressionLenHelper(c, x.Mg, currentLen)
42	case *MINFO:
43		currentLen -= len(x.Rmail) + 1
44		currentLen += compressionLenHelper(c, x.Rmail, currentLen)
45		currentLen -= len(x.Email) + 1
46		currentLen += compressionLenHelper(c, x.Email, currentLen)
47	case *MR:
48		currentLen -= len(x.Mr) + 1
49		currentLen += compressionLenHelper(c, x.Mr, currentLen)
50	case *MX:
51		currentLen -= len(x.Mx) + 1
52		currentLen += compressionLenHelper(c, x.Mx, currentLen)
53	case *NAPTR:
54		currentLen -= len(x.Replacement) + 1
55		currentLen += compressionLenHelper(c, x.Replacement, currentLen)
56	case *NS:
57		currentLen -= len(x.Ns) + 1
58		currentLen += compressionLenHelper(c, x.Ns, currentLen)
59	case *NSAPPTR:
60		currentLen -= len(x.Ptr) + 1
61		currentLen += compressionLenHelper(c, x.Ptr, currentLen)
62	case *NSEC:
63		currentLen -= len(x.NextDomain) + 1
64		currentLen += compressionLenHelper(c, x.NextDomain, currentLen)
65	case *PTR:
66		currentLen -= len(x.Ptr) + 1
67		currentLen += compressionLenHelper(c, x.Ptr, currentLen)
68	case *PX:
69		currentLen -= len(x.Map822) + 1
70		currentLen += compressionLenHelper(c, x.Map822, currentLen)
71		currentLen -= len(x.Mapx400) + 1
72		currentLen += compressionLenHelper(c, x.Mapx400, currentLen)
73	case *RP:
74		currentLen -= len(x.Mbox) + 1
75		currentLen += compressionLenHelper(c, x.Mbox, currentLen)
76		currentLen -= len(x.Txt) + 1
77		currentLen += compressionLenHelper(c, x.Txt, currentLen)
78	case *RRSIG:
79		currentLen -= len(x.SignerName) + 1
80		currentLen += compressionLenHelper(c, x.SignerName, currentLen)
81	case *RT:
82		currentLen -= len(x.Host) + 1
83		currentLen += compressionLenHelper(c, x.Host, currentLen)
84	case *SIG:
85		currentLen -= len(x.SignerName) + 1
86		currentLen += compressionLenHelper(c, x.SignerName, currentLen)
87	case *SOA:
88		currentLen -= len(x.Ns) + 1
89		currentLen += compressionLenHelper(c, x.Ns, currentLen)
90		currentLen -= len(x.Mbox) + 1
91		currentLen += compressionLenHelper(c, x.Mbox, currentLen)
92	case *SRV:
93		currentLen -= len(x.Target) + 1
94		currentLen += compressionLenHelper(c, x.Target, currentLen)
95	case *TALINK:
96		currentLen -= len(x.PreviousName) + 1
97		currentLen += compressionLenHelper(c, x.PreviousName, currentLen)
98		currentLen -= len(x.NextName) + 1
99		currentLen += compressionLenHelper(c, x.NextName, currentLen)
100	case *TKEY:
101		currentLen -= len(x.Algorithm) + 1
102		currentLen += compressionLenHelper(c, x.Algorithm, currentLen)
103	case *TSIG:
104		currentLen -= len(x.Algorithm) + 1
105		currentLen += compressionLenHelper(c, x.Algorithm, currentLen)
106	}
107	return currentLen - initLen
108}
109
110func compressionLenSearchType(c map[string]int, r RR) (int, bool, int) {
111	switch x := r.(type) {
112	case *AFSDB:
113		k1, ok1, sz1 := compressionLenSearch(c, x.Hostname)
114		return k1, ok1, sz1
115	case *CNAME:
116		k1, ok1, sz1 := compressionLenSearch(c, x.Target)
117		return k1, ok1, sz1
118	case *MB:
119		k1, ok1, sz1 := compressionLenSearch(c, x.Mb)
120		return k1, ok1, sz1
121	case *MD:
122		k1, ok1, sz1 := compressionLenSearch(c, x.Md)
123		return k1, ok1, sz1
124	case *MF:
125		k1, ok1, sz1 := compressionLenSearch(c, x.Mf)
126		return k1, ok1, sz1
127	case *MG:
128		k1, ok1, sz1 := compressionLenSearch(c, x.Mg)
129		return k1, ok1, sz1
130	case *MINFO:
131		k1, ok1, sz1 := compressionLenSearch(c, x.Rmail)
132		k2, ok2, sz2 := compressionLenSearch(c, x.Email)
133		return k1 + k2, ok1 && ok2, sz1 + sz2
134	case *MR:
135		k1, ok1, sz1 := compressionLenSearch(c, x.Mr)
136		return k1, ok1, sz1
137	case *MX:
138		k1, ok1, sz1 := compressionLenSearch(c, x.Mx)
139		return k1, ok1, sz1
140	case *NS:
141		k1, ok1, sz1 := compressionLenSearch(c, x.Ns)
142		return k1, ok1, sz1
143	case *PTR:
144		k1, ok1, sz1 := compressionLenSearch(c, x.Ptr)
145		return k1, ok1, sz1
146	case *RT:
147		k1, ok1, sz1 := compressionLenSearch(c, x.Host)
148		return k1, ok1, sz1
149	case *SOA:
150		k1, ok1, sz1 := compressionLenSearch(c, x.Ns)
151		k2, ok2, sz2 := compressionLenSearch(c, x.Mbox)
152		return k1 + k2, ok1 && ok2, sz1 + sz2
153	}
154	return 0, false, 0
155}
156