zduplicate.go raw
1 // Code generated by "go run duplicate_generate.go"; DO NOT EDIT.
2
3 package dns
4
5 // isDuplicate() functions
6
7 func (r1 *A) isDuplicate(_r2 RR) bool {
8 r2, ok := _r2.(*A)
9 if !ok {
10 return false
11 }
12 _ = r2
13 if !r1.A.Equal(r2.A) {
14 return false
15 }
16 return true
17 }
18
19 func (r1 *AAAA) isDuplicate(_r2 RR) bool {
20 r2, ok := _r2.(*AAAA)
21 if !ok {
22 return false
23 }
24 _ = r2
25 if !r1.AAAA.Equal(r2.AAAA) {
26 return false
27 }
28 return true
29 }
30
31 func (r1 *AFSDB) isDuplicate(_r2 RR) bool {
32 r2, ok := _r2.(*AFSDB)
33 if !ok {
34 return false
35 }
36 _ = r2
37 if r1.Subtype != r2.Subtype {
38 return false
39 }
40 if !isDuplicateName(r1.Hostname, r2.Hostname) {
41 return false
42 }
43 return true
44 }
45
46 func (r1 *AMTRELAY) isDuplicate(_r2 RR) bool {
47 r2, ok := _r2.(*AMTRELAY)
48 if !ok {
49 return false
50 }
51 _ = r2
52 if r1.Precedence != r2.Precedence {
53 return false
54 }
55 if r1.GatewayType != r2.GatewayType {
56 return false
57 }
58 switch r1.GatewayType {
59 case IPSECGatewayIPv4, IPSECGatewayIPv6:
60 if !r1.GatewayAddr.Equal(r2.GatewayAddr) {
61 return false
62 }
63 case IPSECGatewayHost:
64 if !isDuplicateName(r1.GatewayHost, r2.GatewayHost) {
65 return false
66 }
67 }
68
69 return true
70 }
71
72 func (r1 *ANY) isDuplicate(_r2 RR) bool {
73 r2, ok := _r2.(*ANY)
74 if !ok {
75 return false
76 }
77 _ = r2
78 return true
79 }
80
81 func (r1 *APL) isDuplicate(_r2 RR) bool {
82 r2, ok := _r2.(*APL)
83 if !ok {
84 return false
85 }
86 _ = r2
87 if len(r1.Prefixes) != len(r2.Prefixes) {
88 return false
89 }
90 for i := 0; i < len(r1.Prefixes); i++ {
91 if !r1.Prefixes[i].equals(&r2.Prefixes[i]) {
92 return false
93 }
94 }
95 return true
96 }
97
98 func (r1 *AVC) isDuplicate(_r2 RR) bool {
99 r2, ok := _r2.(*AVC)
100 if !ok {
101 return false
102 }
103 _ = r2
104 if len(r1.Txt) != len(r2.Txt) {
105 return false
106 }
107 for i := 0; i < len(r1.Txt); i++ {
108 if r1.Txt[i] != r2.Txt[i] {
109 return false
110 }
111 }
112 return true
113 }
114
115 func (r1 *CAA) isDuplicate(_r2 RR) bool {
116 r2, ok := _r2.(*CAA)
117 if !ok {
118 return false
119 }
120 _ = r2
121 if r1.Flag != r2.Flag {
122 return false
123 }
124 if r1.Tag != r2.Tag {
125 return false
126 }
127 if r1.Value != r2.Value {
128 return false
129 }
130 return true
131 }
132
133 func (r1 *CDNSKEY) isDuplicate(_r2 RR) bool {
134 r2, ok := _r2.(*CDNSKEY)
135 if !ok {
136 return false
137 }
138 _ = r2
139 if r1.Flags != r2.Flags {
140 return false
141 }
142 if r1.Protocol != r2.Protocol {
143 return false
144 }
145 if r1.Algorithm != r2.Algorithm {
146 return false
147 }
148 if r1.PublicKey != r2.PublicKey {
149 return false
150 }
151 return true
152 }
153
154 func (r1 *CDS) isDuplicate(_r2 RR) bool {
155 r2, ok := _r2.(*CDS)
156 if !ok {
157 return false
158 }
159 _ = r2
160 if r1.KeyTag != r2.KeyTag {
161 return false
162 }
163 if r1.Algorithm != r2.Algorithm {
164 return false
165 }
166 if r1.DigestType != r2.DigestType {
167 return false
168 }
169 if r1.Digest != r2.Digest {
170 return false
171 }
172 return true
173 }
174
175 func (r1 *CERT) isDuplicate(_r2 RR) bool {
176 r2, ok := _r2.(*CERT)
177 if !ok {
178 return false
179 }
180 _ = r2
181 if r1.Type != r2.Type {
182 return false
183 }
184 if r1.KeyTag != r2.KeyTag {
185 return false
186 }
187 if r1.Algorithm != r2.Algorithm {
188 return false
189 }
190 if r1.Certificate != r2.Certificate {
191 return false
192 }
193 return true
194 }
195
196 func (r1 *CNAME) isDuplicate(_r2 RR) bool {
197 r2, ok := _r2.(*CNAME)
198 if !ok {
199 return false
200 }
201 _ = r2
202 if !isDuplicateName(r1.Target, r2.Target) {
203 return false
204 }
205 return true
206 }
207
208 func (r1 *CSYNC) isDuplicate(_r2 RR) bool {
209 r2, ok := _r2.(*CSYNC)
210 if !ok {
211 return false
212 }
213 _ = r2
214 if r1.Serial != r2.Serial {
215 return false
216 }
217 if r1.Flags != r2.Flags {
218 return false
219 }
220 if len(r1.TypeBitMap) != len(r2.TypeBitMap) {
221 return false
222 }
223 for i := 0; i < len(r1.TypeBitMap); i++ {
224 if r1.TypeBitMap[i] != r2.TypeBitMap[i] {
225 return false
226 }
227 }
228 return true
229 }
230
231 func (r1 *DHCID) isDuplicate(_r2 RR) bool {
232 r2, ok := _r2.(*DHCID)
233 if !ok {
234 return false
235 }
236 _ = r2
237 if r1.Digest != r2.Digest {
238 return false
239 }
240 return true
241 }
242
243 func (r1 *DLV) isDuplicate(_r2 RR) bool {
244 r2, ok := _r2.(*DLV)
245 if !ok {
246 return false
247 }
248 _ = r2
249 if r1.KeyTag != r2.KeyTag {
250 return false
251 }
252 if r1.Algorithm != r2.Algorithm {
253 return false
254 }
255 if r1.DigestType != r2.DigestType {
256 return false
257 }
258 if r1.Digest != r2.Digest {
259 return false
260 }
261 return true
262 }
263
264 func (r1 *DNAME) isDuplicate(_r2 RR) bool {
265 r2, ok := _r2.(*DNAME)
266 if !ok {
267 return false
268 }
269 _ = r2
270 if !isDuplicateName(r1.Target, r2.Target) {
271 return false
272 }
273 return true
274 }
275
276 func (r1 *DNSKEY) isDuplicate(_r2 RR) bool {
277 r2, ok := _r2.(*DNSKEY)
278 if !ok {
279 return false
280 }
281 _ = r2
282 if r1.Flags != r2.Flags {
283 return false
284 }
285 if r1.Protocol != r2.Protocol {
286 return false
287 }
288 if r1.Algorithm != r2.Algorithm {
289 return false
290 }
291 if r1.PublicKey != r2.PublicKey {
292 return false
293 }
294 return true
295 }
296
297 func (r1 *DS) isDuplicate(_r2 RR) bool {
298 r2, ok := _r2.(*DS)
299 if !ok {
300 return false
301 }
302 _ = r2
303 if r1.KeyTag != r2.KeyTag {
304 return false
305 }
306 if r1.Algorithm != r2.Algorithm {
307 return false
308 }
309 if r1.DigestType != r2.DigestType {
310 return false
311 }
312 if r1.Digest != r2.Digest {
313 return false
314 }
315 return true
316 }
317
318 func (r1 *EID) isDuplicate(_r2 RR) bool {
319 r2, ok := _r2.(*EID)
320 if !ok {
321 return false
322 }
323 _ = r2
324 if r1.Endpoint != r2.Endpoint {
325 return false
326 }
327 return true
328 }
329
330 func (r1 *EUI48) isDuplicate(_r2 RR) bool {
331 r2, ok := _r2.(*EUI48)
332 if !ok {
333 return false
334 }
335 _ = r2
336 if r1.Address != r2.Address {
337 return false
338 }
339 return true
340 }
341
342 func (r1 *EUI64) isDuplicate(_r2 RR) bool {
343 r2, ok := _r2.(*EUI64)
344 if !ok {
345 return false
346 }
347 _ = r2
348 if r1.Address != r2.Address {
349 return false
350 }
351 return true
352 }
353
354 func (r1 *GID) isDuplicate(_r2 RR) bool {
355 r2, ok := _r2.(*GID)
356 if !ok {
357 return false
358 }
359 _ = r2
360 if r1.Gid != r2.Gid {
361 return false
362 }
363 return true
364 }
365
366 func (r1 *GPOS) isDuplicate(_r2 RR) bool {
367 r2, ok := _r2.(*GPOS)
368 if !ok {
369 return false
370 }
371 _ = r2
372 if r1.Longitude != r2.Longitude {
373 return false
374 }
375 if r1.Latitude != r2.Latitude {
376 return false
377 }
378 if r1.Altitude != r2.Altitude {
379 return false
380 }
381 return true
382 }
383
384 func (r1 *HINFO) isDuplicate(_r2 RR) bool {
385 r2, ok := _r2.(*HINFO)
386 if !ok {
387 return false
388 }
389 _ = r2
390 if r1.Cpu != r2.Cpu {
391 return false
392 }
393 if r1.Os != r2.Os {
394 return false
395 }
396 return true
397 }
398
399 func (r1 *HIP) isDuplicate(_r2 RR) bool {
400 r2, ok := _r2.(*HIP)
401 if !ok {
402 return false
403 }
404 _ = r2
405 if r1.HitLength != r2.HitLength {
406 return false
407 }
408 if r1.PublicKeyAlgorithm != r2.PublicKeyAlgorithm {
409 return false
410 }
411 if r1.PublicKeyLength != r2.PublicKeyLength {
412 return false
413 }
414 if r1.Hit != r2.Hit {
415 return false
416 }
417 if r1.PublicKey != r2.PublicKey {
418 return false
419 }
420 if len(r1.RendezvousServers) != len(r2.RendezvousServers) {
421 return false
422 }
423 for i := 0; i < len(r1.RendezvousServers); i++ {
424 if !isDuplicateName(r1.RendezvousServers[i], r2.RendezvousServers[i]) {
425 return false
426 }
427 }
428 return true
429 }
430
431 func (r1 *HTTPS) isDuplicate(_r2 RR) bool {
432 r2, ok := _r2.(*HTTPS)
433 if !ok {
434 return false
435 }
436 _ = r2
437 if r1.Priority != r2.Priority {
438 return false
439 }
440 if !isDuplicateName(r1.Target, r2.Target) {
441 return false
442 }
443 if len(r1.Value) != len(r2.Value) {
444 return false
445 }
446 if !areSVCBPairArraysEqual(r1.Value, r2.Value) {
447 return false
448 }
449 return true
450 }
451
452 func (r1 *IPSECKEY) isDuplicate(_r2 RR) bool {
453 r2, ok := _r2.(*IPSECKEY)
454 if !ok {
455 return false
456 }
457 _ = r2
458 if r1.Precedence != r2.Precedence {
459 return false
460 }
461 if r1.GatewayType != r2.GatewayType {
462 return false
463 }
464 if r1.Algorithm != r2.Algorithm {
465 return false
466 }
467 switch r1.GatewayType {
468 case IPSECGatewayIPv4, IPSECGatewayIPv6:
469 if !r1.GatewayAddr.Equal(r2.GatewayAddr) {
470 return false
471 }
472 case IPSECGatewayHost:
473 if !isDuplicateName(r1.GatewayHost, r2.GatewayHost) {
474 return false
475 }
476 }
477
478 if r1.PublicKey != r2.PublicKey {
479 return false
480 }
481 return true
482 }
483
484 func (r1 *ISDN) isDuplicate(_r2 RR) bool {
485 r2, ok := _r2.(*ISDN)
486 if !ok {
487 return false
488 }
489 _ = r2
490 if r1.Address != r2.Address {
491 return false
492 }
493 if r1.SubAddress != r2.SubAddress {
494 return false
495 }
496 return true
497 }
498
499 func (r1 *KEY) isDuplicate(_r2 RR) bool {
500 r2, ok := _r2.(*KEY)
501 if !ok {
502 return false
503 }
504 _ = r2
505 if r1.Flags != r2.Flags {
506 return false
507 }
508 if r1.Protocol != r2.Protocol {
509 return false
510 }
511 if r1.Algorithm != r2.Algorithm {
512 return false
513 }
514 if r1.PublicKey != r2.PublicKey {
515 return false
516 }
517 return true
518 }
519
520 func (r1 *KX) isDuplicate(_r2 RR) bool {
521 r2, ok := _r2.(*KX)
522 if !ok {
523 return false
524 }
525 _ = r2
526 if r1.Preference != r2.Preference {
527 return false
528 }
529 if !isDuplicateName(r1.Exchanger, r2.Exchanger) {
530 return false
531 }
532 return true
533 }
534
535 func (r1 *L32) isDuplicate(_r2 RR) bool {
536 r2, ok := _r2.(*L32)
537 if !ok {
538 return false
539 }
540 _ = r2
541 if r1.Preference != r2.Preference {
542 return false
543 }
544 if !r1.Locator32.Equal(r2.Locator32) {
545 return false
546 }
547 return true
548 }
549
550 func (r1 *L64) isDuplicate(_r2 RR) bool {
551 r2, ok := _r2.(*L64)
552 if !ok {
553 return false
554 }
555 _ = r2
556 if r1.Preference != r2.Preference {
557 return false
558 }
559 if r1.Locator64 != r2.Locator64 {
560 return false
561 }
562 return true
563 }
564
565 func (r1 *LOC) isDuplicate(_r2 RR) bool {
566 r2, ok := _r2.(*LOC)
567 if !ok {
568 return false
569 }
570 _ = r2
571 if r1.Version != r2.Version {
572 return false
573 }
574 if r1.Size != r2.Size {
575 return false
576 }
577 if r1.HorizPre != r2.HorizPre {
578 return false
579 }
580 if r1.VertPre != r2.VertPre {
581 return false
582 }
583 if r1.Latitude != r2.Latitude {
584 return false
585 }
586 if r1.Longitude != r2.Longitude {
587 return false
588 }
589 if r1.Altitude != r2.Altitude {
590 return false
591 }
592 return true
593 }
594
595 func (r1 *LP) isDuplicate(_r2 RR) bool {
596 r2, ok := _r2.(*LP)
597 if !ok {
598 return false
599 }
600 _ = r2
601 if r1.Preference != r2.Preference {
602 return false
603 }
604 if !isDuplicateName(r1.Fqdn, r2.Fqdn) {
605 return false
606 }
607 return true
608 }
609
610 func (r1 *MB) isDuplicate(_r2 RR) bool {
611 r2, ok := _r2.(*MB)
612 if !ok {
613 return false
614 }
615 _ = r2
616 if !isDuplicateName(r1.Mb, r2.Mb) {
617 return false
618 }
619 return true
620 }
621
622 func (r1 *MD) isDuplicate(_r2 RR) bool {
623 r2, ok := _r2.(*MD)
624 if !ok {
625 return false
626 }
627 _ = r2
628 if !isDuplicateName(r1.Md, r2.Md) {
629 return false
630 }
631 return true
632 }
633
634 func (r1 *MF) isDuplicate(_r2 RR) bool {
635 r2, ok := _r2.(*MF)
636 if !ok {
637 return false
638 }
639 _ = r2
640 if !isDuplicateName(r1.Mf, r2.Mf) {
641 return false
642 }
643 return true
644 }
645
646 func (r1 *MG) isDuplicate(_r2 RR) bool {
647 r2, ok := _r2.(*MG)
648 if !ok {
649 return false
650 }
651 _ = r2
652 if !isDuplicateName(r1.Mg, r2.Mg) {
653 return false
654 }
655 return true
656 }
657
658 func (r1 *MINFO) isDuplicate(_r2 RR) bool {
659 r2, ok := _r2.(*MINFO)
660 if !ok {
661 return false
662 }
663 _ = r2
664 if !isDuplicateName(r1.Rmail, r2.Rmail) {
665 return false
666 }
667 if !isDuplicateName(r1.Email, r2.Email) {
668 return false
669 }
670 return true
671 }
672
673 func (r1 *MR) isDuplicate(_r2 RR) bool {
674 r2, ok := _r2.(*MR)
675 if !ok {
676 return false
677 }
678 _ = r2
679 if !isDuplicateName(r1.Mr, r2.Mr) {
680 return false
681 }
682 return true
683 }
684
685 func (r1 *MX) isDuplicate(_r2 RR) bool {
686 r2, ok := _r2.(*MX)
687 if !ok {
688 return false
689 }
690 _ = r2
691 if r1.Preference != r2.Preference {
692 return false
693 }
694 if !isDuplicateName(r1.Mx, r2.Mx) {
695 return false
696 }
697 return true
698 }
699
700 func (r1 *NAPTR) isDuplicate(_r2 RR) bool {
701 r2, ok := _r2.(*NAPTR)
702 if !ok {
703 return false
704 }
705 _ = r2
706 if r1.Order != r2.Order {
707 return false
708 }
709 if r1.Preference != r2.Preference {
710 return false
711 }
712 if r1.Flags != r2.Flags {
713 return false
714 }
715 if r1.Service != r2.Service {
716 return false
717 }
718 if r1.Regexp != r2.Regexp {
719 return false
720 }
721 if !isDuplicateName(r1.Replacement, r2.Replacement) {
722 return false
723 }
724 return true
725 }
726
727 func (r1 *NID) isDuplicate(_r2 RR) bool {
728 r2, ok := _r2.(*NID)
729 if !ok {
730 return false
731 }
732 _ = r2
733 if r1.Preference != r2.Preference {
734 return false
735 }
736 if r1.NodeID != r2.NodeID {
737 return false
738 }
739 return true
740 }
741
742 func (r1 *NIMLOC) isDuplicate(_r2 RR) bool {
743 r2, ok := _r2.(*NIMLOC)
744 if !ok {
745 return false
746 }
747 _ = r2
748 if r1.Locator != r2.Locator {
749 return false
750 }
751 return true
752 }
753
754 func (r1 *NINFO) isDuplicate(_r2 RR) bool {
755 r2, ok := _r2.(*NINFO)
756 if !ok {
757 return false
758 }
759 _ = r2
760 if len(r1.ZSData) != len(r2.ZSData) {
761 return false
762 }
763 for i := 0; i < len(r1.ZSData); i++ {
764 if r1.ZSData[i] != r2.ZSData[i] {
765 return false
766 }
767 }
768 return true
769 }
770
771 func (r1 *NS) isDuplicate(_r2 RR) bool {
772 r2, ok := _r2.(*NS)
773 if !ok {
774 return false
775 }
776 _ = r2
777 if !isDuplicateName(r1.Ns, r2.Ns) {
778 return false
779 }
780 return true
781 }
782
783 func (r1 *NSAPPTR) isDuplicate(_r2 RR) bool {
784 r2, ok := _r2.(*NSAPPTR)
785 if !ok {
786 return false
787 }
788 _ = r2
789 if !isDuplicateName(r1.Ptr, r2.Ptr) {
790 return false
791 }
792 return true
793 }
794
795 func (r1 *NSEC) isDuplicate(_r2 RR) bool {
796 r2, ok := _r2.(*NSEC)
797 if !ok {
798 return false
799 }
800 _ = r2
801 if !isDuplicateName(r1.NextDomain, r2.NextDomain) {
802 return false
803 }
804 if len(r1.TypeBitMap) != len(r2.TypeBitMap) {
805 return false
806 }
807 for i := 0; i < len(r1.TypeBitMap); i++ {
808 if r1.TypeBitMap[i] != r2.TypeBitMap[i] {
809 return false
810 }
811 }
812 return true
813 }
814
815 func (r1 *NSEC3) isDuplicate(_r2 RR) bool {
816 r2, ok := _r2.(*NSEC3)
817 if !ok {
818 return false
819 }
820 _ = r2
821 if r1.Hash != r2.Hash {
822 return false
823 }
824 if r1.Flags != r2.Flags {
825 return false
826 }
827 if r1.Iterations != r2.Iterations {
828 return false
829 }
830 if r1.SaltLength != r2.SaltLength {
831 return false
832 }
833 if r1.Salt != r2.Salt {
834 return false
835 }
836 if r1.HashLength != r2.HashLength {
837 return false
838 }
839 if r1.NextDomain != r2.NextDomain {
840 return false
841 }
842 if len(r1.TypeBitMap) != len(r2.TypeBitMap) {
843 return false
844 }
845 for i := 0; i < len(r1.TypeBitMap); i++ {
846 if r1.TypeBitMap[i] != r2.TypeBitMap[i] {
847 return false
848 }
849 }
850 return true
851 }
852
853 func (r1 *NSEC3PARAM) isDuplicate(_r2 RR) bool {
854 r2, ok := _r2.(*NSEC3PARAM)
855 if !ok {
856 return false
857 }
858 _ = r2
859 if r1.Hash != r2.Hash {
860 return false
861 }
862 if r1.Flags != r2.Flags {
863 return false
864 }
865 if r1.Iterations != r2.Iterations {
866 return false
867 }
868 if r1.SaltLength != r2.SaltLength {
869 return false
870 }
871 if r1.Salt != r2.Salt {
872 return false
873 }
874 return true
875 }
876
877 func (r1 *NULL) isDuplicate(_r2 RR) bool {
878 r2, ok := _r2.(*NULL)
879 if !ok {
880 return false
881 }
882 _ = r2
883 if r1.Data != r2.Data {
884 return false
885 }
886 return true
887 }
888
889 func (r1 *NXNAME) isDuplicate(_r2 RR) bool {
890 r2, ok := _r2.(*NXNAME)
891 if !ok {
892 return false
893 }
894 _ = r2
895 return true
896 }
897
898 func (r1 *NXT) isDuplicate(_r2 RR) bool {
899 r2, ok := _r2.(*NXT)
900 if !ok {
901 return false
902 }
903 _ = r2
904 if !isDuplicateName(r1.NextDomain, r2.NextDomain) {
905 return false
906 }
907 if len(r1.TypeBitMap) != len(r2.TypeBitMap) {
908 return false
909 }
910 for i := 0; i < len(r1.TypeBitMap); i++ {
911 if r1.TypeBitMap[i] != r2.TypeBitMap[i] {
912 return false
913 }
914 }
915 return true
916 }
917
918 func (r1 *OPENPGPKEY) isDuplicate(_r2 RR) bool {
919 r2, ok := _r2.(*OPENPGPKEY)
920 if !ok {
921 return false
922 }
923 _ = r2
924 if r1.PublicKey != r2.PublicKey {
925 return false
926 }
927 return true
928 }
929
930 func (r1 *PTR) isDuplicate(_r2 RR) bool {
931 r2, ok := _r2.(*PTR)
932 if !ok {
933 return false
934 }
935 _ = r2
936 if !isDuplicateName(r1.Ptr, r2.Ptr) {
937 return false
938 }
939 return true
940 }
941
942 func (r1 *PX) isDuplicate(_r2 RR) bool {
943 r2, ok := _r2.(*PX)
944 if !ok {
945 return false
946 }
947 _ = r2
948 if r1.Preference != r2.Preference {
949 return false
950 }
951 if !isDuplicateName(r1.Map822, r2.Map822) {
952 return false
953 }
954 if !isDuplicateName(r1.Mapx400, r2.Mapx400) {
955 return false
956 }
957 return true
958 }
959
960 func (r1 *RESINFO) isDuplicate(_r2 RR) bool {
961 r2, ok := _r2.(*RESINFO)
962 if !ok {
963 return false
964 }
965 _ = r2
966 if len(r1.Txt) != len(r2.Txt) {
967 return false
968 }
969 for i := 0; i < len(r1.Txt); i++ {
970 if r1.Txt[i] != r2.Txt[i] {
971 return false
972 }
973 }
974 return true
975 }
976
977 func (r1 *RFC3597) isDuplicate(_r2 RR) bool {
978 r2, ok := _r2.(*RFC3597)
979 if !ok {
980 return false
981 }
982 _ = r2
983 if r1.Rdata != r2.Rdata {
984 return false
985 }
986 return true
987 }
988
989 func (r1 *RKEY) isDuplicate(_r2 RR) bool {
990 r2, ok := _r2.(*RKEY)
991 if !ok {
992 return false
993 }
994 _ = r2
995 if r1.Flags != r2.Flags {
996 return false
997 }
998 if r1.Protocol != r2.Protocol {
999 return false
1000 }
1001 if r1.Algorithm != r2.Algorithm {
1002 return false
1003 }
1004 if r1.PublicKey != r2.PublicKey {
1005 return false
1006 }
1007 return true
1008 }
1009
1010 func (r1 *RP) isDuplicate(_r2 RR) bool {
1011 r2, ok := _r2.(*RP)
1012 if !ok {
1013 return false
1014 }
1015 _ = r2
1016 if !isDuplicateName(r1.Mbox, r2.Mbox) {
1017 return false
1018 }
1019 if !isDuplicateName(r1.Txt, r2.Txt) {
1020 return false
1021 }
1022 return true
1023 }
1024
1025 func (r1 *RRSIG) isDuplicate(_r2 RR) bool {
1026 r2, ok := _r2.(*RRSIG)
1027 if !ok {
1028 return false
1029 }
1030 _ = r2
1031 if r1.TypeCovered != r2.TypeCovered {
1032 return false
1033 }
1034 if r1.Algorithm != r2.Algorithm {
1035 return false
1036 }
1037 if r1.Labels != r2.Labels {
1038 return false
1039 }
1040 if r1.OrigTtl != r2.OrigTtl {
1041 return false
1042 }
1043 if r1.Expiration != r2.Expiration {
1044 return false
1045 }
1046 if r1.Inception != r2.Inception {
1047 return false
1048 }
1049 if r1.KeyTag != r2.KeyTag {
1050 return false
1051 }
1052 if !isDuplicateName(r1.SignerName, r2.SignerName) {
1053 return false
1054 }
1055 if r1.Signature != r2.Signature {
1056 return false
1057 }
1058 return true
1059 }
1060
1061 func (r1 *RT) isDuplicate(_r2 RR) bool {
1062 r2, ok := _r2.(*RT)
1063 if !ok {
1064 return false
1065 }
1066 _ = r2
1067 if r1.Preference != r2.Preference {
1068 return false
1069 }
1070 if !isDuplicateName(r1.Host, r2.Host) {
1071 return false
1072 }
1073 return true
1074 }
1075
1076 func (r1 *SIG) isDuplicate(_r2 RR) bool {
1077 r2, ok := _r2.(*SIG)
1078 if !ok {
1079 return false
1080 }
1081 _ = r2
1082 if r1.TypeCovered != r2.TypeCovered {
1083 return false
1084 }
1085 if r1.Algorithm != r2.Algorithm {
1086 return false
1087 }
1088 if r1.Labels != r2.Labels {
1089 return false
1090 }
1091 if r1.OrigTtl != r2.OrigTtl {
1092 return false
1093 }
1094 if r1.Expiration != r2.Expiration {
1095 return false
1096 }
1097 if r1.Inception != r2.Inception {
1098 return false
1099 }
1100 if r1.KeyTag != r2.KeyTag {
1101 return false
1102 }
1103 if !isDuplicateName(r1.SignerName, r2.SignerName) {
1104 return false
1105 }
1106 if r1.Signature != r2.Signature {
1107 return false
1108 }
1109 return true
1110 }
1111
1112 func (r1 *SMIMEA) isDuplicate(_r2 RR) bool {
1113 r2, ok := _r2.(*SMIMEA)
1114 if !ok {
1115 return false
1116 }
1117 _ = r2
1118 if r1.Usage != r2.Usage {
1119 return false
1120 }
1121 if r1.Selector != r2.Selector {
1122 return false
1123 }
1124 if r1.MatchingType != r2.MatchingType {
1125 return false
1126 }
1127 if r1.Certificate != r2.Certificate {
1128 return false
1129 }
1130 return true
1131 }
1132
1133 func (r1 *SOA) isDuplicate(_r2 RR) bool {
1134 r2, ok := _r2.(*SOA)
1135 if !ok {
1136 return false
1137 }
1138 _ = r2
1139 if !isDuplicateName(r1.Ns, r2.Ns) {
1140 return false
1141 }
1142 if !isDuplicateName(r1.Mbox, r2.Mbox) {
1143 return false
1144 }
1145 if r1.Serial != r2.Serial {
1146 return false
1147 }
1148 if r1.Refresh != r2.Refresh {
1149 return false
1150 }
1151 if r1.Retry != r2.Retry {
1152 return false
1153 }
1154 if r1.Expire != r2.Expire {
1155 return false
1156 }
1157 if r1.Minttl != r2.Minttl {
1158 return false
1159 }
1160 return true
1161 }
1162
1163 func (r1 *SPF) isDuplicate(_r2 RR) bool {
1164 r2, ok := _r2.(*SPF)
1165 if !ok {
1166 return false
1167 }
1168 _ = r2
1169 if len(r1.Txt) != len(r2.Txt) {
1170 return false
1171 }
1172 for i := 0; i < len(r1.Txt); i++ {
1173 if r1.Txt[i] != r2.Txt[i] {
1174 return false
1175 }
1176 }
1177 return true
1178 }
1179
1180 func (r1 *SRV) isDuplicate(_r2 RR) bool {
1181 r2, ok := _r2.(*SRV)
1182 if !ok {
1183 return false
1184 }
1185 _ = r2
1186 if r1.Priority != r2.Priority {
1187 return false
1188 }
1189 if r1.Weight != r2.Weight {
1190 return false
1191 }
1192 if r1.Port != r2.Port {
1193 return false
1194 }
1195 if !isDuplicateName(r1.Target, r2.Target) {
1196 return false
1197 }
1198 return true
1199 }
1200
1201 func (r1 *SSHFP) isDuplicate(_r2 RR) bool {
1202 r2, ok := _r2.(*SSHFP)
1203 if !ok {
1204 return false
1205 }
1206 _ = r2
1207 if r1.Algorithm != r2.Algorithm {
1208 return false
1209 }
1210 if r1.Type != r2.Type {
1211 return false
1212 }
1213 if r1.FingerPrint != r2.FingerPrint {
1214 return false
1215 }
1216 return true
1217 }
1218
1219 func (r1 *SVCB) isDuplicate(_r2 RR) bool {
1220 r2, ok := _r2.(*SVCB)
1221 if !ok {
1222 return false
1223 }
1224 _ = r2
1225 if r1.Priority != r2.Priority {
1226 return false
1227 }
1228 if !isDuplicateName(r1.Target, r2.Target) {
1229 return false
1230 }
1231 if len(r1.Value) != len(r2.Value) {
1232 return false
1233 }
1234 if !areSVCBPairArraysEqual(r1.Value, r2.Value) {
1235 return false
1236 }
1237 return true
1238 }
1239
1240 func (r1 *TA) isDuplicate(_r2 RR) bool {
1241 r2, ok := _r2.(*TA)
1242 if !ok {
1243 return false
1244 }
1245 _ = r2
1246 if r1.KeyTag != r2.KeyTag {
1247 return false
1248 }
1249 if r1.Algorithm != r2.Algorithm {
1250 return false
1251 }
1252 if r1.DigestType != r2.DigestType {
1253 return false
1254 }
1255 if r1.Digest != r2.Digest {
1256 return false
1257 }
1258 return true
1259 }
1260
1261 func (r1 *TALINK) isDuplicate(_r2 RR) bool {
1262 r2, ok := _r2.(*TALINK)
1263 if !ok {
1264 return false
1265 }
1266 _ = r2
1267 if !isDuplicateName(r1.PreviousName, r2.PreviousName) {
1268 return false
1269 }
1270 if !isDuplicateName(r1.NextName, r2.NextName) {
1271 return false
1272 }
1273 return true
1274 }
1275
1276 func (r1 *TKEY) isDuplicate(_r2 RR) bool {
1277 r2, ok := _r2.(*TKEY)
1278 if !ok {
1279 return false
1280 }
1281 _ = r2
1282 if !isDuplicateName(r1.Algorithm, r2.Algorithm) {
1283 return false
1284 }
1285 if r1.Inception != r2.Inception {
1286 return false
1287 }
1288 if r1.Expiration != r2.Expiration {
1289 return false
1290 }
1291 if r1.Mode != r2.Mode {
1292 return false
1293 }
1294 if r1.Error != r2.Error {
1295 return false
1296 }
1297 if r1.KeySize != r2.KeySize {
1298 return false
1299 }
1300 if r1.Key != r2.Key {
1301 return false
1302 }
1303 if r1.OtherLen != r2.OtherLen {
1304 return false
1305 }
1306 if r1.OtherData != r2.OtherData {
1307 return false
1308 }
1309 return true
1310 }
1311
1312 func (r1 *TLSA) isDuplicate(_r2 RR) bool {
1313 r2, ok := _r2.(*TLSA)
1314 if !ok {
1315 return false
1316 }
1317 _ = r2
1318 if r1.Usage != r2.Usage {
1319 return false
1320 }
1321 if r1.Selector != r2.Selector {
1322 return false
1323 }
1324 if r1.MatchingType != r2.MatchingType {
1325 return false
1326 }
1327 if r1.Certificate != r2.Certificate {
1328 return false
1329 }
1330 return true
1331 }
1332
1333 func (r1 *TSIG) isDuplicate(_r2 RR) bool {
1334 r2, ok := _r2.(*TSIG)
1335 if !ok {
1336 return false
1337 }
1338 _ = r2
1339 if !isDuplicateName(r1.Algorithm, r2.Algorithm) {
1340 return false
1341 }
1342 if r1.TimeSigned != r2.TimeSigned {
1343 return false
1344 }
1345 if r1.Fudge != r2.Fudge {
1346 return false
1347 }
1348 if r1.MACSize != r2.MACSize {
1349 return false
1350 }
1351 if r1.MAC != r2.MAC {
1352 return false
1353 }
1354 if r1.OrigId != r2.OrigId {
1355 return false
1356 }
1357 if r1.Error != r2.Error {
1358 return false
1359 }
1360 if r1.OtherLen != r2.OtherLen {
1361 return false
1362 }
1363 if r1.OtherData != r2.OtherData {
1364 return false
1365 }
1366 return true
1367 }
1368
1369 func (r1 *TXT) isDuplicate(_r2 RR) bool {
1370 r2, ok := _r2.(*TXT)
1371 if !ok {
1372 return false
1373 }
1374 _ = r2
1375 if len(r1.Txt) != len(r2.Txt) {
1376 return false
1377 }
1378 for i := 0; i < len(r1.Txt); i++ {
1379 if r1.Txt[i] != r2.Txt[i] {
1380 return false
1381 }
1382 }
1383 return true
1384 }
1385
1386 func (r1 *UID) isDuplicate(_r2 RR) bool {
1387 r2, ok := _r2.(*UID)
1388 if !ok {
1389 return false
1390 }
1391 _ = r2
1392 if r1.Uid != r2.Uid {
1393 return false
1394 }
1395 return true
1396 }
1397
1398 func (r1 *UINFO) isDuplicate(_r2 RR) bool {
1399 r2, ok := _r2.(*UINFO)
1400 if !ok {
1401 return false
1402 }
1403 _ = r2
1404 if r1.Uinfo != r2.Uinfo {
1405 return false
1406 }
1407 return true
1408 }
1409
1410 func (r1 *URI) isDuplicate(_r2 RR) bool {
1411 r2, ok := _r2.(*URI)
1412 if !ok {
1413 return false
1414 }
1415 _ = r2
1416 if r1.Priority != r2.Priority {
1417 return false
1418 }
1419 if r1.Weight != r2.Weight {
1420 return false
1421 }
1422 if r1.Target != r2.Target {
1423 return false
1424 }
1425 return true
1426 }
1427
1428 func (r1 *X25) isDuplicate(_r2 RR) bool {
1429 r2, ok := _r2.(*X25)
1430 if !ok {
1431 return false
1432 }
1433 _ = r2
1434 if r1.PSDNAddress != r2.PSDNAddress {
1435 return false
1436 }
1437 return true
1438 }
1439
1440 func (r1 *ZONEMD) isDuplicate(_r2 RR) bool {
1441 r2, ok := _r2.(*ZONEMD)
1442 if !ok {
1443 return false
1444 }
1445 _ = r2
1446 if r1.Serial != r2.Serial {
1447 return false
1448 }
1449 if r1.Scheme != r2.Scheme {
1450 return false
1451 }
1452 if r1.Hash != r2.Hash {
1453 return false
1454 }
1455 if r1.Digest != r2.Digest {
1456 return false
1457 }
1458 return true
1459 }
1460