Coverage Report

Created: 2026-10-28 06:35

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/spicy/build/ci/fuzz/dns_Message_DNS.cc
Line
Count
Source
1
// Begin of DNS (from "/src/spicy/spicy-dns/analyzer/analyzer.spicy")
2
// Compiled by HILTI version 1.18.0-dev.47
3
4
#include <hilti/rt/compiler-setup.h>
5
6
#include <spicy/rt/libspicy.h>
7
#include <hilti/rt/libhilti.h>
8
9
extern uint64_t hlt_internal_dns_Message_hlto_scope;
10
11
namespace hlt_internal_dns_Message::type_info { namespace {
12
    extern const ::hilti::rt::TypeInfo _t_ti_bitfieldx2a16x2b_x73_qr__0x3e_opcode__1__4x3e_aa__5x3e_tc__6x3e_rd__7x3e_ra__8x3e_z__9__11x3e_ad__10x3e_cd__11x3e_rcode__12__15x3e_x75_x28bit_orderx31spicy__BitOrder__MSB0_bitfieldx2a16_qr_0_0_opcode_1_4_aa_5_5_tc_6_6_rd_7_7_ra_8_8_z_9_11_ad_10_10_cd_11_11_rcode_12_15_x2b;
13
    extern const ::hilti::rt::TypeInfo _t_ti_tuple_uint_16___uint_16___uint_16___uint_16___uint_16___uint_16___uint_16___uint_16___uint_16___uint_16___uint_16___tuplex2auint16_uint16_uint16_uint16_uint16_uint16_uint16_uint16_uint16_uint16_uint16_x2b;
14
    extern const ::hilti::rt::TypeInfo _t_ti_DNS__Header_namex2aDNS__Headerx2b;
15
    extern const ::hilti::rt::TypeInfo _t_ti_optional_spicy__RecoverableFailure__optionalx2anamex2ahilti__RecoverableFailurex2bx2b;
16
    extern const ::hilti::rt::TypeInfo _t_ti_hilti__RecoverableFailure_namex2ahilti__RecoverableFailurex2b;
17
    extern const ::hilti::rt::TypeInfo _t_ti_DNS__RDType_namex2aDNS__RDTypex2b;
18
    extern const ::hilti::rt::TypeInfo _t_ti_DNS__RRType_namex2aDNS__RRTypex2b;
19
    extern const ::hilti::rt::TypeInfo _t_ti_DNS__ResourceRecord_namex2aDNS__ResourceRecordx2b;
20
    extern const ::hilti::rt::TypeInfo _t_ti_value_ref_Name__value_refx2anamex2aDNS__Namex2bx2b;
21
    extern const ::hilti::rt::TypeInfo _t_ti_DNS__Name_namex2aDNS__Namex2b;
22
    extern const ::hilti::rt::TypeInfo _t_ti_value_ref_RDataMX__value_refx2anamex2aDNS__RDataMXx2bx2b;
23
    extern const ::hilti::rt::TypeInfo _t_ti_DNS__RDataMX_namex2aDNS__RDataMXx2b;
24
    extern const ::hilti::rt::TypeInfo _t_ti_value_ref_RDataSOA__value_refx2anamex2aDNS__RDataSOAx2bx2b;
25
    extern const ::hilti::rt::TypeInfo _t_ti_DNS__RDataSOA_namex2aDNS__RDataSOAx2b;
26
    extern const ::hilti::rt::TypeInfo _t_ti_value_ref_RDataSRV__value_refx2anamex2aDNS__RDataSRVx2bx2b;
27
    extern const ::hilti::rt::TypeInfo _t_ti_DNS__RDataSRV_namex2aDNS__RDataSRVx2b;
28
    extern const ::hilti::rt::TypeInfo _t_ti_vector_value_ref_CharacterString___vectorx2anamex2aDNS__CharacterStringx2bx2b;
29
    extern const ::hilti::rt::TypeInfo _t_ti_value_ref_CharacterString__value_refx2anamex2aDNS__CharacterStringx2bx2b;
30
    extern const ::hilti::rt::TypeInfo _t_ti_DNS__CharacterString_namex2aDNS__CharacterStringx2b;
31
    extern const ::hilti::rt::TypeInfo _t_ti_DNS__Question_namex2aDNS__Questionx2b;
32
    extern const ::hilti::rt::TypeInfo _t_ti_bitfieldx2a16x2b_x73_offset__0__13x3e_x75_bitfieldx2a16_offset_0_13_x2b;
33
    extern const ::hilti::rt::TypeInfo _t_ti_tuple_uint_16___uint_16___tuplex2auint16_uint16_x2b;
34
    extern const ::hilti::rt::TypeInfo _t_ti_DNS__Pointer_namex2aDNS__Pointerx2b;
35
    extern const ::hilti::rt::TypeInfo _t_ti_DNS__Message_namex2aDNS__Messagex2b;
36
    extern const ::hilti::rt::TypeInfo _t_ti_vector_value_ref_Question___vectorx2anamex2aDNS__Questionx2bx2b;
37
    extern const ::hilti::rt::TypeInfo _t_ti_value_ref_Question__value_refx2anamex2aDNS__Questionx2bx2b;
38
    extern const ::hilti::rt::TypeInfo _t_ti_vector_value_ref_ResourceRecord___vectorx2anamex2aDNS__ResourceRecordx2bx2b;
39
    extern const ::hilti::rt::TypeInfo _t_ti_value_ref_ResourceRecord__value_refx2anamex2aDNS__ResourceRecordx2bx2b;
40
    extern const ::hilti::rt::TypeInfo _t_ti_optional_iterator_stream___optionalx2aiteratorx2astreamx2bx2b;
41
    extern const ::hilti::rt::TypeInfo _t_ti_bitfieldx2a8x2b_x73_offset__0__5x3e_compressed__6__7x3e_x75_bitfieldx2a8_offset_0_5_compressed_6_7_x2b;
42
    extern const ::hilti::rt::TypeInfo _t_ti_tuple_uint_8___uint_8___uint_8___tuplex2auint8_uint8_uint8_x2b;
43
    extern const ::hilti::rt::TypeInfo _t_ti_DNS__Label_namex2aDNS__Labelx2b;
44
    extern const ::hilti::rt::TypeInfo _t_ti_value_ref_Pointer__value_refx2anamex2aDNS__Pointerx2bx2b;
45
    extern const ::hilti::rt::TypeInfo _t_ti_value_ref_DNS__Message__value_refx2anamex2aDNS__Messagex2bx2b;
46
    extern const ::hilti::rt::TypeInfo _t_ti_strong_ref_const_DNS__Message__strong_refx2anamex2aDNS__Messagex2bx2b;
47
} }
48
49
namespace hlt_internal_dns_Message::DNS {
50
    struct Header;
51
    struct ResourceRecord;
52
    struct RDataSRV;
53
    struct RDataSOA;
54
    struct RDataMX;
55
    struct Question;
56
    struct Pointer;
57
    struct Name;
58
    struct Message;
59
    struct Label;
60
    struct CharacterString;
61
    struct Header : ::hilti::rt::trait::isStruct, ::hilti::rt::Controllable<Header> {
62
8.86k
        auto _t_self() { return ::hilti::rt::ValueReference<Header>::self(this); }
63
        // ::hilti::rt::Optional<::hilti::rt::integer::safe<uint16_t>> id{};
64
        ::hilti::rt::Optional<::hilti::rt::Bitfield<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>>> flags{};
65
        ::hilti::rt::Optional<::hilti::rt::integer::safe<uint16_t>> qdcount{};
66
        ::hilti::rt::Optional<::hilti::rt::integer::safe<uint16_t>> ancount{};
67
        ::hilti::rt::Optional<::hilti::rt::integer::safe<uint16_t>> nscount{};
68
        ::hilti::rt::Optional<::hilti::rt::integer::safe<uint16_t>> arcount{};
69
        // ::hilti::rt::Bool rejected{};
70
        void _t_on_0x25_done();
71
        auto _t_parse_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::View& _t_cur, const ::hilti::rt::Bool& _t_trim, const ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>& _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
72
        auto _t_parse_DNS__Header_2_stage2(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, ::hilti::rt::stream::View _t_cur, const ::hilti::rt::Bool& _t_trim, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
73
        ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error{};
74
        Header();
75
        Header(const Header&) = default;
76
0
        Header(Header&&) = default;
77
        Header& operator=(const Header&) = default;
78
2.96k
        Header& operator=(Header&&) = default;
79
        explicit Header(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Bitfield<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>>>> flags, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::integer::safe<uint16_t>>> qdcount, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::integer::safe<uint16_t>>> ancount, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::integer::safe<uint16_t>>> nscount, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::integer::safe<uint16_t>>> arcount);
80
81
0
        std::string __to_string() const {
82
0
            return "["s + hilti::rt::to_string_for_print("$id=(optimized out)"_hs) + ", "s + "$flags=("s + ::hilti::rt::bitfield::detail::render(flags, &type_info::_t_ti_bitfieldx2a16x2b_x73_qr__0x3e_opcode__1__4x3e_aa__5x3e_tc__6x3e_rd__7x3e_ra__8x3e_z__9__11x3e_ad__10x3e_cd__11x3e_rcode__12__15x3e_x75_x28bit_orderx31spicy__BitOrder__MSB0_bitfieldx2a16_qr_0_0_opcode_1_4_aa_5_5_tc_6_6_rd_7_7_ra_8_8_z_9_11_ad_10_10_cd_11_11_rcode_12_15_x2b, false)+ ")" + ", "s + "$qdcount=" + hilti::rt::to_string(qdcount) + ", "s + "$ancount=" + hilti::rt::to_string(ancount) + ", "s + "$nscount=" + hilti::rt::to_string(nscount) + ", "s + "$arcount=" + hilti::rt::to_string(arcount) + ", "s + hilti::rt::to_string_for_print("$rejected=(optimized out)"_hs) + "]";
83
0
        }
84
    };
85
86
    HILTI_RT_ENUM_TYPE(RDType, A = 1, NS = 2, MD = 3, MF = 4, CNAME = 5, SOA = 6, MB = 7, MG = 8, MR = 9, NULL_ = 10, WKS = 11, PTR = 12, HINFO = 13, MINFO = 14, MX = 15, TXT = 16, AAAA = 28, NBS = 32, SRV = 33, A6 = 38, EDNS = 41);
87
    HILTI_RT_ENUM_TYPE(RRType, ANSWER = 1, AUTH = 2, ADDL = 3);
88
    struct ResourceRecord : ::hilti::rt::trait::isStruct, hilti::rt::trait::hasParameters, ::hilti::rt::Controllable<ResourceRecord> {
89
5.05M
        auto _t_self() { return ::hilti::rt::ValueReference<ResourceRecord>::self(this); }
90
        ::hilti::rt::Optional<::hilti::rt::ValueReference<Name>> name{};
91
        ::hilti::rt::Optional<DNS::RDType> ty{};
92
        // ::hilti::rt::Optional<::hilti::rt::integer::safe<uint16_t>> class_{};
93
        // ::hilti::rt::Optional<::hilti::rt::Interval> ttl{};
94
        ::hilti::rt::Optional<::hilti::rt::integer::safe<uint16_t>> rdlen{};
95
        ::hilti::rt::Optional<::hilti::rt::ValueReference<Name>> rname{};
96
        // ::hilti::rt::Optional<::hilti::rt::Address> a{};
97
        ::hilti::rt::Optional<::hilti::rt::ValueReference<RDataMX>> mx{};
98
        ::hilti::rt::Optional<::hilti::rt::ValueReference<RDataSOA>> soa{};
99
        ::hilti::rt::Optional<::hilti::rt::ValueReference<RDataSRV>> srv{};
100
        ::hilti::rt::Optional<::hilti::rt::Vector<::hilti::rt::ValueReference<CharacterString>>> txt{};
101
        // ::hilti::rt::Optional<::hilti::rt::Bytes> rdata{};
102
        auto _t_parse_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::View& _t_cur, const ::hilti::rt::Bool& _t_trim, const ::hilti::rt::integer::safe<int64_t>& _t_lah, const ::hilti::rt::stream::SafeConstIterator& _t_lahe, const ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>& _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
103
        auto _t_parse_txt_2_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, ::hilti::rt::stream::View _t_cur, const ::hilti::rt::Bool& _t_trim, ::hilti::rt::Vector<::hilti::rt::ValueReference<CharacterString>>& _t_dst) -> ::hilti::rt::stream::View;
104
        auto _t_parse_switch_5_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, ::hilti::rt::stream::View _t_cur, ::hilti::rt::Bool _t_trim, ::hilti::rt::integer::safe<int64_t> _t_lah, ::hilti::rt::stream::SafeConstIterator _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
105
        auto _t_parse_DNS__ResourceRecord_2_stage2(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, ::hilti::rt::stream::View _t_cur, ::hilti::rt::Bool _t_trim, ::hilti::rt::integer::safe<int64_t> _t_lah, ::hilti::rt::stream::SafeConstIterator _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
106
        ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error{};
107
        ::hilti::rt::WeakReference<Message> _t_p_msg{};
108
        DNS::RRType _t_p_rrtype;
109
        ResourceRecord();
110
        ResourceRecord(const ResourceRecord&) = default;
111
3.35M
        ResourceRecord(ResourceRecord&&) = default;
112
0
        ResourceRecord& operator=(const ResourceRecord&) = default;
113
        ResourceRecord& operator=(ResourceRecord&&) = default;
114
        explicit ResourceRecord(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<Name>>> name, ::hilti::rt::Optional<::hilti::rt::Optional<DNS::RDType>> ty, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::integer::safe<uint16_t>>> rdlen, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<Name>>> rname, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<RDataMX>>> mx, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<RDataSOA>>> soa, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<RDataSRV>>> srv, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Vector<::hilti::rt::ValueReference<CharacterString>>>> txt);
115
        explicit ResourceRecord(::hilti::rt::struct_::tag::Parameters, const ::hilti::rt::ValueReference<Message>& _t_p_msg, const DNS::RRType& _t_p_rrtype);
116
117
0
        std::string __to_string() const {
118
0
            return "["s + "$name=" + hilti::rt::to_string(name) + ", "s + "$ty=" + hilti::rt::to_string(ty) + ", "s + hilti::rt::to_string_for_print("$class_=(optimized out)"_hs) + ", "s + hilti::rt::to_string_for_print("$ttl=(optimized out)"_hs) + ", "s + "$rdlen=" + hilti::rt::to_string(rdlen) + ", "s + "$rname=" + hilti::rt::to_string(rname) + ", "s + hilti::rt::to_string_for_print("$a=(optimized out)"_hs) + ", "s + "$mx=" + hilti::rt::to_string(mx) + ", "s + "$soa=" + hilti::rt::to_string(soa) + ", "s + "$srv=" + hilti::rt::to_string(srv) + ", "s + "$txt=" + hilti::rt::to_string(txt) + ", "s + hilti::rt::to_string_for_print("$rdata=(optimized out)"_hs) + "]";
119
0
        }
120
    };
121
122
    struct RDataSRV : ::hilti::rt::trait::isStruct, hilti::rt::trait::hasParameters, ::hilti::rt::Controllable<RDataSRV> {
123
8.34k
        auto _t_self() { return ::hilti::rt::ValueReference<RDataSRV>::self(this); }
124
        // ::hilti::rt::Optional<::hilti::rt::integer::safe<uint16_t>> priority_{};
125
        // ::hilti::rt::Optional<::hilti::rt::integer::safe<uint16_t>> weight{};
126
        // ::hilti::rt::Optional<::hilti::rt::integer::safe<uint16_t>> port_{};
127
        ::hilti::rt::Optional<::hilti::rt::ValueReference<Name>> target{};
128
        auto _t_parse_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::View& _t_cur, const ::hilti::rt::Bool& _t_trim, const ::hilti::rt::integer::safe<int64_t>& _t_lah, const ::hilti::rt::stream::SafeConstIterator& _t_lahe, const ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>& _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
129
        auto _t_parse_DNS__RDataSRV_3_stage2(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, ::hilti::rt::stream::View _t_cur, const ::hilti::rt::Bool& _t_trim, ::hilti::rt::integer::safe<int64_t> _t_lah, ::hilti::rt::stream::SafeConstIterator _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
130
        ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error{};
131
        ::hilti::rt::WeakReference<Message> _t_p_msg{};
132
        RDataSRV();
133
0
        RDataSRV(const RDataSRV&) = default;
134
0
        RDataSRV(RDataSRV&&) = default;
135
0
        RDataSRV& operator=(const RDataSRV&) = default;
136
4.17k
        RDataSRV& operator=(RDataSRV&&) = default;
137
        explicit RDataSRV(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<Name>>> target);
138
        explicit RDataSRV(::hilti::rt::struct_::tag::Parameters, const ::hilti::rt::ValueReference<Message>& _t_p_msg);
139
140
0
        std::string __to_string() const {
141
0
            return "["s + hilti::rt::to_string_for_print("$priority_=(optimized out)"_hs) + ", "s + hilti::rt::to_string_for_print("$weight=(optimized out)"_hs) + ", "s + hilti::rt::to_string_for_print("$port_=(optimized out)"_hs) + ", "s + "$target=" + hilti::rt::to_string(target) + "]";
142
0
        }
143
    };
144
145
    struct RDataSOA : ::hilti::rt::trait::isStruct, hilti::rt::trait::hasParameters, ::hilti::rt::Controllable<RDataSOA> {
146
11.5k
        auto _t_self() { return ::hilti::rt::ValueReference<RDataSOA>::self(this); }
147
        ::hilti::rt::Optional<::hilti::rt::ValueReference<Name>> mname{};
148
        ::hilti::rt::Optional<::hilti::rt::ValueReference<Name>> rname{};
149
        // ::hilti::rt::Optional<::hilti::rt::integer::safe<uint32_t>> serial{};
150
        // ::hilti::rt::Optional<::hilti::rt::Interval> refresh{};
151
        // ::hilti::rt::Optional<::hilti::rt::Interval> retry{};
152
        // ::hilti::rt::Optional<::hilti::rt::Interval> expire{};
153
        // ::hilti::rt::Optional<::hilti::rt::Interval> minimum{};
154
        auto _t_parse_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::View& _t_cur, const ::hilti::rt::Bool& _t_trim, const ::hilti::rt::integer::safe<int64_t>& _t_lah, const ::hilti::rt::stream::SafeConstIterator& _t_lahe, const ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>& _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
155
        auto _t_parse_DNS__RDataSOA_3_stage2(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, ::hilti::rt::stream::View _t_cur, const ::hilti::rt::Bool& _t_trim, ::hilti::rt::integer::safe<int64_t> _t_lah, ::hilti::rt::stream::SafeConstIterator _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
156
        ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error{};
157
        ::hilti::rt::WeakReference<Message> _t_p_msg{};
158
        RDataSOA();
159
0
        RDataSOA(const RDataSOA&) = default;
160
0
        RDataSOA(RDataSOA&&) = default;
161
0
        RDataSOA& operator=(const RDataSOA&) = default;
162
5.79k
        RDataSOA& operator=(RDataSOA&&) = default;
163
        explicit RDataSOA(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<Name>>> mname, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<Name>>> rname);
164
        explicit RDataSOA(::hilti::rt::struct_::tag::Parameters, const ::hilti::rt::ValueReference<Message>& _t_p_msg);
165
166
0
        std::string __to_string() const {
167
0
            return "["s + "$mname=" + hilti::rt::to_string(mname) + ", "s + "$rname=" + hilti::rt::to_string(rname) + ", "s + hilti::rt::to_string_for_print("$serial=(optimized out)"_hs) + ", "s + hilti::rt::to_string_for_print("$refresh=(optimized out)"_hs) + ", "s + hilti::rt::to_string_for_print("$retry=(optimized out)"_hs) + ", "s + hilti::rt::to_string_for_print("$expire=(optimized out)"_hs) + ", "s + hilti::rt::to_string_for_print("$minimum=(optimized out)"_hs) + "]";
168
0
        }
169
    };
170
171
    struct RDataMX : ::hilti::rt::trait::isStruct, hilti::rt::trait::hasParameters, ::hilti::rt::Controllable<RDataMX> {
172
6.44k
        auto _t_self() { return ::hilti::rt::ValueReference<RDataMX>::self(this); }
173
        // ::hilti::rt::Optional<::hilti::rt::integer::safe<uint16_t>> preference{};
174
        ::hilti::rt::Optional<::hilti::rt::ValueReference<Name>> name{};
175
        auto _t_parse_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::View& _t_cur, const ::hilti::rt::Bool& _t_trim, const ::hilti::rt::integer::safe<int64_t>& _t_lah, const ::hilti::rt::stream::SafeConstIterator& _t_lahe, const ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>& _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
176
        auto _t_parse_DNS__RDataMX_3_stage2(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, ::hilti::rt::stream::View _t_cur, const ::hilti::rt::Bool& _t_trim, ::hilti::rt::integer::safe<int64_t> _t_lah, ::hilti::rt::stream::SafeConstIterator _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
177
        ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error{};
178
        ::hilti::rt::WeakReference<Message> _t_p_msg{};
179
        RDataMX();
180
0
        RDataMX(const RDataMX&) = default;
181
0
        RDataMX(RDataMX&&) = default;
182
0
        RDataMX& operator=(const RDataMX&) = default;
183
3.22k
        RDataMX& operator=(RDataMX&&) = default;
184
        explicit RDataMX(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<Name>>> name);
185
        explicit RDataMX(::hilti::rt::struct_::tag::Parameters, const ::hilti::rt::ValueReference<Message>& _t_p_msg);
186
187
0
        std::string __to_string() const {
188
0
            return "["s + hilti::rt::to_string_for_print("$preference=(optimized out)"_hs) + ", "s + "$name=" + hilti::rt::to_string(name) + "]";
189
0
        }
190
    };
191
192
    struct Question : ::hilti::rt::trait::isStruct, hilti::rt::trait::hasParameters, ::hilti::rt::Controllable<Question> {
193
1.64M
        auto _t_self() { return ::hilti::rt::ValueReference<Question>::self(this); }
194
        ::hilti::rt::Optional<::hilti::rt::ValueReference<Name>> qname{};
195
        // ::hilti::rt::Optional<::hilti::rt::integer::safe<uint16_t>> qtype{};
196
        // ::hilti::rt::Optional<::hilti::rt::integer::safe<uint16_t>> qclass{};
197
        auto _t_parse_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::View& _t_cur, const ::hilti::rt::Bool& _t_trim, const ::hilti::rt::integer::safe<int64_t>& _t_lah, const ::hilti::rt::stream::SafeConstIterator& _t_lahe, const ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>& _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
198
        auto _t_parse_DNS__Question_2_stage2(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, ::hilti::rt::stream::View _t_cur, const ::hilti::rt::Bool& _t_trim, ::hilti::rt::integer::safe<int64_t> _t_lah, ::hilti::rt::stream::SafeConstIterator _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
199
        ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error{};
200
        ::hilti::rt::WeakReference<Message> _t_p_msg{};
201
        Question();
202
        Question(const Question&) = default;
203
1.64M
        Question(Question&&) = default;
204
0
        Question& operator=(const Question&) = default;
205
        Question& operator=(Question&&) = default;
206
        explicit Question(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<Name>>> qname);
207
        explicit Question(::hilti::rt::struct_::tag::Parameters, const ::hilti::rt::ValueReference<Message>& _t_p_msg);
208
209
0
        std::string __to_string() const {
210
0
            return "["s + "$qname=" + hilti::rt::to_string(qname) + ", "s + hilti::rt::to_string_for_print("$qtype=(optimized out)"_hs) + ", "s + hilti::rt::to_string_for_print("$qclass=(optimized out)"_hs) + "]";
211
0
        }
212
    };
213
214
    struct Pointer : ::hilti::rt::trait::isStruct, hilti::rt::trait::hasParameters, ::hilti::rt::Controllable<Pointer> {
215
73.9k
        auto _t_self() { return ::hilti::rt::ValueReference<Pointer>::self(this); }
216
        ::hilti::rt::Optional<::hilti::rt::Bitfield<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>>> len{};
217
        ::hilti::rt::Optional<::hilti::rt::ValueReference<Name>> name{};
218
        auto _t_parse_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::View& _t_cur, const ::hilti::rt::Bool& _t_trim, const ::hilti::rt::integer::safe<int64_t>& _t_lah, const ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>& _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
219
        auto _t_parse_DNS__Pointer_8_stage2(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, ::hilti::rt::stream::View _t_cur, const ::hilti::rt::Bool& _t_trim, const ::hilti::rt::integer::safe<int64_t>& _t_lah, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
220
        ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error{};
221
        ::hilti::rt::WeakReference<Message> _t_p_msg{};
222
        ::hilti::rt::WeakReference<Label> _t_p_label{};
223
        Pointer();
224
23.6k
        Pointer(const Pointer&) = default;
225
0
        Pointer(Pointer&&) = default;
226
0
        Pointer& operator=(const Pointer&) = default;
227
36.9k
        Pointer& operator=(Pointer&&) = default;
228
        explicit Pointer(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Bitfield<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>>>> len, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<Name>>> name);
229
        explicit Pointer(::hilti::rt::struct_::tag::Parameters, const ::hilti::rt::ValueReference<Message>& _t_p_msg, const ::hilti::rt::ValueReference<Label>& _t_p_label);
230
231
0
        std::string __to_string() const {
232
0
            return "["s + "$len=("s + ::hilti::rt::bitfield::detail::render(len, &type_info::_t_ti_bitfieldx2a16x2b_x73_offset__0__13x3e_x75_bitfieldx2a16_offset_0_13_x2b, false)+ ")" + ", "s + "$name=" + hilti::rt::to_string(name) + "]";
233
0
        }
234
    };
235
236
    struct Name : ::hilti::rt::trait::isStruct, hilti::rt::trait::hasParameters, ::hilti::rt::Controllable<Name> {
237
7.70M
        auto _t_self() { return ::hilti::rt::ValueReference<Name>::self(this); }
238
        ::hilti::rt::Bytes label{};
239
        auto _t_parse_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::View& _t_cur, const ::hilti::rt::integer::safe<int64_t>& _t_lah, const ::hilti::rt::stream::SafeConstIterator& _t_lahe, const ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>& _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
240
        auto _t_parse__anon_7_7_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::SafeConstIterator& _t_begin, ::hilti::rt::stream::View _t_cur, ::hilti::rt::integer::safe<int64_t> _t_lah, ::hilti::rt::stream::SafeConstIterator _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
241
        auto _t_parse_DNS__Name_7_stage2(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::SafeConstIterator& _t_begin, ::hilti::rt::stream::View _t_cur, ::hilti::rt::integer::safe<int64_t> _t_lah, ::hilti::rt::stream::SafeConstIterator _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
242
        ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error{};
243
        ::hilti::rt::WeakReference<Message> _t_p_msg{};
244
        Name();
245
23.6k
        Name(const Name&) = default;
246
0
        Name(Name&&) = default;
247
0
        Name& operator=(const Name&) = default;
248
2.56M
        Name& operator=(Name&&) = default;
249
        explicit Name(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Bytes> label);
250
        explicit Name(::hilti::rt::struct_::tag::Parameters, const ::hilti::rt::ValueReference<Message>& _t_p_msg);
251
252
0
        std::string __to_string() const {
253
0
            return "["s + "$label=" + hilti::rt::to_string(label) + "]";
254
0
        }
255
    };
256
257
    struct Message : ::hilti::rt::trait::isStruct, ::hilti::rt::Controllable<Message> {
258
12.8k
        auto _t_self() { return ::hilti::rt::ValueReference<Message>::self(this); }
259
        ::hilti::rt::Optional<Header> header{};
260
        ::hilti::rt::Optional<::hilti::rt::Vector<::hilti::rt::ValueReference<Question>>> question{};
261
        ::hilti::rt::Optional<::hilti::rt::Vector<::hilti::rt::ValueReference<ResourceRecord>>> answer{};
262
        ::hilti::rt::Optional<::hilti::rt::Vector<::hilti::rt::ValueReference<ResourceRecord>>> authority{};
263
        ::hilti::rt::Optional<::hilti::rt::Vector<::hilti::rt::ValueReference<ResourceRecord>>> additional{};
264
        ::hilti::rt::stream::SafeConstIterator _t_begin{};
265
        ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator> _t_position_update{};
266
        inline static ::spicy::rt::Parser _t_parser{};
267
        auto _t_parse_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::SafeConstIterator& _t_begin, ::hilti::rt::stream::View _t_cur, const ::hilti::rt::integer::safe<int64_t>& _t_lah, const ::hilti::rt::stream::SafeConstIterator& _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
268
        static auto parse1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::Optional<::hilti::rt::stream::View>& _t_cur, const ::hilti::rt::Optional<::spicy::rt::UnitContext>& _t_context) -> ::hilti::rt::stream::View;
269
        static auto parse2(::hilti::rt::ValueReference<Message>& _t_unit, ::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::Optional<::hilti::rt::stream::View>& _t_cur, const ::hilti::rt::Optional<::spicy::rt::UnitContext>& _t_context) -> ::hilti::rt::stream::View;
270
        static auto parse3(::hilti::rt::ValueReference<::spicy::rt::ParsedUnit>& _t_gunit, ::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::Optional<::hilti::rt::stream::View>& _t_cur, const ::hilti::rt::Optional<::spicy::rt::UnitContext>& _t_context) -> ::hilti::rt::stream::View;
271
        auto _t_parse_question_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::SafeConstIterator& _t_begin, ::hilti::rt::stream::View _t_cur, ::hilti::rt::Bool _t_trim, ::hilti::rt::integer::safe<int64_t> _t_lah, ::hilti::rt::stream::SafeConstIterator _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error, ::hilti::rt::Vector<::hilti::rt::ValueReference<Question>>& _t_dst) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
272
        auto _t_parse_answer_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::SafeConstIterator& _t_begin, ::hilti::rt::stream::View _t_cur, ::hilti::rt::Bool _t_trim, ::hilti::rt::integer::safe<int64_t> _t_lah, ::hilti::rt::stream::SafeConstIterator _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error, ::hilti::rt::Vector<::hilti::rt::ValueReference<ResourceRecord>>& _t_dst) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
273
        auto _t_parse_authority_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::SafeConstIterator& _t_begin, ::hilti::rt::stream::View _t_cur, ::hilti::rt::Bool _t_trim, ::hilti::rt::integer::safe<int64_t> _t_lah, ::hilti::rt::stream::SafeConstIterator _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error, ::hilti::rt::Vector<::hilti::rt::ValueReference<ResourceRecord>>& _t_dst) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
274
        auto _t_parse_additional_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::SafeConstIterator& _t_begin, ::hilti::rt::stream::View _t_cur, ::hilti::rt::Bool _t_trim, ::hilti::rt::integer::safe<int64_t> _t_lah, ::hilti::rt::stream::SafeConstIterator _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error, ::hilti::rt::Vector<::hilti::rt::ValueReference<ResourceRecord>>& _t_dst) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
275
        auto _t_parse_DNS__Message_stage2(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::SafeConstIterator& _t_begin, ::hilti::rt::stream::View _t_cur, ::hilti::rt::Bool _t_trim, ::hilti::rt::integer::safe<int64_t> _t_lah, ::hilti::rt::stream::SafeConstIterator _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
276
        ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error{};
277
        Message();
278
        Message(const Message&) = default;
279
5.92k
        Message(Message&&) = default;
280
        Message& operator=(const Message&) = default;
281
        Message& operator=(Message&&) = default;
282
        explicit Message(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<Header>> header, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Vector<::hilti::rt::ValueReference<Question>>>> question, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Vector<::hilti::rt::ValueReference<ResourceRecord>>>> answer, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Vector<::hilti::rt::ValueReference<ResourceRecord>>>> authority, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Vector<::hilti::rt::ValueReference<ResourceRecord>>>> additional);
283
284
0
        std::string __to_string() const {
285
0
            return "["s + "$header=" + hilti::rt::to_string(header) + ", "s + "$question=" + hilti::rt::to_string(question) + ", "s + "$answer=" + hilti::rt::to_string(answer) + ", "s + "$authority=" + hilti::rt::to_string(authority) + ", "s + "$additional=" + hilti::rt::to_string(additional) + "]";
286
0
        }
287
    };
288
289
    struct Label : ::hilti::rt::trait::isStruct, hilti::rt::trait::hasParameters, ::hilti::rt::Controllable<Label> {
290
11.7M
        auto _t_self() { return ::hilti::rt::ValueReference<Label>::self(this); }
291
        ::hilti::rt::Optional<::hilti::rt::Bitfield<::hilti::rt::integer::safe<uint8_t>, ::hilti::rt::integer::safe<uint8_t>, ::hilti::rt::integer::safe<uint8_t>>> len{};
292
        ::hilti::rt::Optional<::hilti::rt::Bytes> label{};
293
        void _t_on_label();
294
        ::hilti::rt::Optional<::hilti::rt::ValueReference<Pointer>> ptr{};
295
        void _t_on_ptr();
296
        ::hilti::rt::stream::SafeConstIterator _t_begin{};
297
        ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator> _t_position_update{};
298
        auto _t_parse_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::SafeConstIterator& _t_begin, ::hilti::rt::stream::View _t_cur, const ::hilti::rt::integer::safe<int64_t>& _t_lah, const ::hilti::rt::stream::SafeConstIterator& _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
299
        auto _t_parse_switch_11_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::SafeConstIterator& _t_begin, ::hilti::rt::stream::View _t_cur, const ::hilti::rt::Bool& _t_trim, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
300
        auto _t_parse_DNS__Label_9_stage2(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::SafeConstIterator& _t_begin, ::hilti::rt::stream::View _t_cur, ::hilti::rt::Bool _t_trim, const ::hilti::rt::integer::safe<int64_t>& _t_lah, const ::hilti::rt::stream::SafeConstIterator& _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
301
        ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error{};
302
        ::hilti::rt::WeakReference<Message> _t_p_msg{};
303
        ::hilti::rt::WeakReference<Name> _t_p_name{};
304
        Label();
305
2.93M
        Label(const Label&) = default;
306
5.90M
        Label(Label&&) = default;
307
0
        Label& operator=(const Label&) = default;
308
        Label& operator=(Label&&) = default;
309
        explicit Label(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Bitfield<::hilti::rt::integer::safe<uint8_t>, ::hilti::rt::integer::safe<uint8_t>, ::hilti::rt::integer::safe<uint8_t>>>> len, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Bytes>> label, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<Pointer>>> ptr);
310
        explicit Label(::hilti::rt::struct_::tag::Parameters, const ::hilti::rt::ValueReference<Message>& _t_p_msg, ::hilti::rt::ValueReference<Name>& _t_p_name);
311
312
0
        std::string __to_string() const {
313
0
            return "["s + "$len=("s + ::hilti::rt::bitfield::detail::render(len, &type_info::_t_ti_bitfieldx2a8x2b_x73_offset__0__5x3e_compressed__6__7x3e_x75_bitfieldx2a8_offset_0_5_compressed_6_7_x2b, false)+ ")" + ", "s + "$label=" + hilti::rt::to_string(label) + ", "s + "$ptr=" + hilti::rt::to_string(ptr) + "]";
314
0
        }
315
    };
316
317
    struct CharacterString : ::hilti::rt::trait::isStruct, hilti::rt::trait::hasParameters, ::hilti::rt::Controllable<CharacterString> {
318
4.63M
        auto _t_self() { return ::hilti::rt::ValueReference<CharacterString>::self(this); }
319
        ::hilti::rt::Optional<::hilti::rt::integer::safe<uint8_t>> len{};
320
        // ::hilti::rt::Optional<::hilti::rt::Bytes> data{};
321
        auto _t_parse_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::View& _t_cur, const ::hilti::rt::Bool& _t_trim) -> ::hilti::rt::stream::View;
322
        auto _t_parse_DNS__CharacterString_3_stage2(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, ::hilti::rt::stream::View _t_cur, const ::hilti::rt::Bool& _t_trim) -> ::hilti::rt::stream::View;
323
        ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error{};
324
        ::hilti::rt::WeakReference<Message> _t_p_msg{};
325
        CharacterString();
326
0
        CharacterString(const CharacterString&) = default;
327
4.63M
        CharacterString(CharacterString&&) = default;
328
0
        CharacterString& operator=(const CharacterString&) = default;
329
        CharacterString& operator=(CharacterString&&) = default;
330
        explicit CharacterString(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::integer::safe<uint8_t>>> len);
331
        explicit CharacterString(::hilti::rt::struct_::tag::Parameters, const ::hilti::rt::ValueReference<Message>& _t_p_msg);
332
333
0
        std::string __to_string() const {
334
0
            return "["s + "$len=" + hilti::rt::to_string(len) + ", "s + hilti::rt::to_string_for_print("$data=(optimized out)"_hs) + "]";
335
0
        }
336
    };
337
338
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40CharacterString0x25is_filter = ::hilti::rt::Bool{false};
339
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40CharacterString0x25supports_filters = ::hilti::rt::Bool{false};
340
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40CharacterString0x25supports_sinks = ::hilti::rt::Bool{false};
341
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40CharacterString0x25synchronization = ::hilti::rt::Bool{false};
342
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40CharacterString0x25uses_offset = ::hilti::rt::Bool{false};
343
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40CharacterString0x25uses_random_access = ::hilti::rt::Bool{false};
344
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40CharacterString0x25uses_stream = ::hilti::rt::Bool{false};
345
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40CharacterString0x25uses_sync_advance = ::hilti::rt::Bool{false};
346
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Header0x25is_filter = ::hilti::rt::Bool{false};
347
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Header0x25supports_filters = ::hilti::rt::Bool{false};
348
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Header0x25supports_sinks = ::hilti::rt::Bool{false};
349
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Header0x25synchronization = ::hilti::rt::Bool{false};
350
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Header0x25uses_offset = ::hilti::rt::Bool{false};
351
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Header0x25uses_random_access = ::hilti::rt::Bool{false};
352
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Header0x25uses_stream = ::hilti::rt::Bool{false};
353
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Header0x25uses_sync_advance = ::hilti::rt::Bool{false};
354
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Label0x25is_filter = ::hilti::rt::Bool{false};
355
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Label0x25supports_filters = ::hilti::rt::Bool{false};
356
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Label0x25supports_sinks = ::hilti::rt::Bool{false};
357
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Label0x25synchronization = ::hilti::rt::Bool{false};
358
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Label0x25uses_offset = ::hilti::rt::Bool{false};
359
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Label0x25uses_random_access = ::hilti::rt::Bool{true};
360
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Label0x25uses_stream = ::hilti::rt::Bool{false};
361
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Label0x25uses_sync_advance = ::hilti::rt::Bool{false};
362
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Message0x25is_filter = ::hilti::rt::Bool{false};
363
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Message0x25supports_filters = ::hilti::rt::Bool{false};
364
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Message0x25supports_sinks = ::hilti::rt::Bool{false};
365
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Message0x25synchronization = ::hilti::rt::Bool{false};
366
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Message0x25uses_offset = ::hilti::rt::Bool{false};
367
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Message0x25uses_random_access = ::hilti::rt::Bool{true};
368
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Message0x25uses_stream = ::hilti::rt::Bool{false};
369
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Message0x25uses_sync_advance = ::hilti::rt::Bool{false};
370
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Name0x25is_filter = ::hilti::rt::Bool{false};
371
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Name0x25supports_filters = ::hilti::rt::Bool{false};
372
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Name0x25supports_sinks = ::hilti::rt::Bool{false};
373
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Name0x25synchronization = ::hilti::rt::Bool{false};
374
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Name0x25uses_offset = ::hilti::rt::Bool{false};
375
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Name0x25uses_random_access = ::hilti::rt::Bool{false};
376
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Name0x25uses_stream = ::hilti::rt::Bool{false};
377
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Name0x25uses_sync_advance = ::hilti::rt::Bool{false};
378
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Pointer0x25is_filter = ::hilti::rt::Bool{false};
379
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Pointer0x25supports_filters = ::hilti::rt::Bool{false};
380
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Pointer0x25supports_sinks = ::hilti::rt::Bool{false};
381
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Pointer0x25synchronization = ::hilti::rt::Bool{false};
382
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Pointer0x25uses_offset = ::hilti::rt::Bool{false};
383
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Pointer0x25uses_random_access = ::hilti::rt::Bool{false};
384
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Pointer0x25uses_stream = ::hilti::rt::Bool{false};
385
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Pointer0x25uses_sync_advance = ::hilti::rt::Bool{false};
386
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Question0x25is_filter = ::hilti::rt::Bool{false};
387
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Question0x25supports_filters = ::hilti::rt::Bool{false};
388
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Question0x25supports_sinks = ::hilti::rt::Bool{false};
389
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Question0x25synchronization = ::hilti::rt::Bool{false};
390
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Question0x25uses_offset = ::hilti::rt::Bool{false};
391
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Question0x25uses_random_access = ::hilti::rt::Bool{false};
392
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Question0x25uses_stream = ::hilti::rt::Bool{false};
393
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40Question0x25uses_sync_advance = ::hilti::rt::Bool{false};
394
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40RDataMX0x25is_filter = ::hilti::rt::Bool{false};
395
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40RDataMX0x25supports_filters = ::hilti::rt::Bool{false};
396
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40RDataMX0x25supports_sinks = ::hilti::rt::Bool{false};
397
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40RDataMX0x25synchronization = ::hilti::rt::Bool{false};
398
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40RDataMX0x25uses_offset = ::hilti::rt::Bool{false};
399
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40RDataMX0x25uses_random_access = ::hilti::rt::Bool{false};
400
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40RDataMX0x25uses_stream = ::hilti::rt::Bool{false};
401
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40RDataMX0x25uses_sync_advance = ::hilti::rt::Bool{false};
402
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40RDataSOA0x25is_filter = ::hilti::rt::Bool{false};
403
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40RDataSOA0x25supports_filters = ::hilti::rt::Bool{false};
404
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40RDataSOA0x25supports_sinks = ::hilti::rt::Bool{false};
405
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40RDataSOA0x25synchronization = ::hilti::rt::Bool{false};
406
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40RDataSOA0x25uses_offset = ::hilti::rt::Bool{false};
407
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40RDataSOA0x25uses_random_access = ::hilti::rt::Bool{false};
408
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40RDataSOA0x25uses_stream = ::hilti::rt::Bool{false};
409
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40RDataSOA0x25uses_sync_advance = ::hilti::rt::Bool{false};
410
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40RDataSRV0x25is_filter = ::hilti::rt::Bool{false};
411
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40RDataSRV0x25supports_filters = ::hilti::rt::Bool{false};
412
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40RDataSRV0x25supports_sinks = ::hilti::rt::Bool{false};
413
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40RDataSRV0x25synchronization = ::hilti::rt::Bool{false};
414
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40RDataSRV0x25uses_offset = ::hilti::rt::Bool{false};
415
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40RDataSRV0x25uses_random_access = ::hilti::rt::Bool{false};
416
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40RDataSRV0x25uses_stream = ::hilti::rt::Bool{false};
417
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40RDataSRV0x25uses_sync_advance = ::hilti::rt::Bool{false};
418
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40ResourceRecord0x25is_filter = ::hilti::rt::Bool{false};
419
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40ResourceRecord0x25supports_filters = ::hilti::rt::Bool{false};
420
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40ResourceRecord0x25supports_sinks = ::hilti::rt::Bool{false};
421
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40ResourceRecord0x25synchronization = ::hilti::rt::Bool{false};
422
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40ResourceRecord0x25uses_offset = ::hilti::rt::Bool{false};
423
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40ResourceRecord0x25uses_random_access = ::hilti::rt::Bool{false};
424
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40ResourceRecord0x25uses_stream = ::hilti::rt::Bool{false};
425
    const ::hilti::rt::Bool _t_feat0x25DNS0x400x40ResourceRecord0x25uses_sync_advance = ::hilti::rt::Bool{false};
426
}
427
428
namespace hlt_dns_Message::DNS::Message {
429
    using Type = hlt_internal_dns_Message::DNS::Message;
430
}
431
432
namespace hlt_internal_dns_Message::DNS {
433
    extern auto operator<<(std::ostream& o, const hlt_internal_dns_Message::DNS::Header& x) -> std::ostream&;
434
    extern void _t_hook_Header__t_on_0x25_done(::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Header>& _t_self);
435
5.92k
    Header::Header() {
436
5.92k
    }
437
438
0
    Header::Header(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Bitfield<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>>>> flags, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::integer::safe<uint16_t>>> qdcount, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::integer::safe<uint16_t>>> ancount, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::integer::safe<uint16_t>>> nscount, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::integer::safe<uint16_t>>> arcount) : Header() {
439
0
        if ( flags ) this->flags = std::move(*flags);
440
0
        if ( qdcount ) this->qdcount = std::move(*qdcount);
441
0
        if ( ancount ) this->ancount = std::move(*ancount);
442
0
        if ( nscount ) this->nscount = std::move(*nscount);
443
0
        if ( arcount ) this->arcount = std::move(*arcount);
444
0
    }
445
446
    
447
}
448
449
namespace hilti::rt::detail::adl {
450
    inline auto to_string(hlt_internal_dns_Message::DNS::RDType x, adl::tag) -> std::string;
451
}
452
453
namespace hlt_internal_dns_Message::DNS {
454
    inline auto operator<<(std::ostream& o, RDType x) -> std::ostream&;
455
}
456
457
namespace hilti::rt::detail::adl {
458
    inline auto to_string(hlt_internal_dns_Message::DNS::RRType x, adl::tag) -> std::string;
459
}
460
461
namespace hlt_internal_dns_Message::DNS {
462
    inline auto operator<<(std::ostream& o, RRType x) -> std::ostream&;
463
    extern auto operator<<(std::ostream& o, const hlt_internal_dns_Message::DNS::ResourceRecord& x) -> std::ostream&;
464
    extern auto operator<<(std::ostream& o, const hlt_internal_dns_Message::DNS::Message& x) -> std::ostream&;
465
    extern auto operator<<(std::ostream& o, const hlt_internal_dns_Message::DNS::Name& x) -> std::ostream&;
466
    extern auto operator<<(std::ostream& o, const hlt_internal_dns_Message::DNS::RDataMX& x) -> std::ostream&;
467
    extern auto operator<<(std::ostream& o, const hlt_internal_dns_Message::DNS::RDataSOA& x) -> std::ostream&;
468
    extern auto operator<<(std::ostream& o, const hlt_internal_dns_Message::DNS::RDataSRV& x) -> std::ostream&;
469
    extern auto operator<<(std::ostream& o, const hlt_internal_dns_Message::DNS::CharacterString& x) -> std::ostream&;
470
0
    ResourceRecord::ResourceRecord() {
471
0
        _t_p_rrtype = DNS::RRType::Undef;
472
0
    }
473
474
1.67M
    ResourceRecord::ResourceRecord(::hilti::rt::struct_::tag::Parameters, const ::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Message>& _t_p_msg, const DNS::RRType& _t_p_rrtype) : _t_p_msg(_t_p_msg), _t_p_rrtype(_t_p_rrtype) {
475
1.67M
    }
476
477
0
    ResourceRecord::ResourceRecord(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Name>>> name, ::hilti::rt::Optional<::hilti::rt::Optional<DNS::RDType>> ty, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::integer::safe<uint16_t>>> rdlen, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Name>>> rname, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::RDataMX>>> mx, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::RDataSOA>>> soa, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::RDataSRV>>> srv, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Vector<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::CharacterString>>>> txt) : ResourceRecord() {
478
0
        if ( name ) this->name = std::move(*name);
479
0
        if ( ty ) this->ty = std::move(*ty);
480
0
        if ( rdlen ) this->rdlen = std::move(*rdlen);
481
0
        if ( rname ) this->rname = std::move(*rname);
482
0
        if ( mx ) this->mx = std::move(*mx);
483
0
        if ( soa ) this->soa = std::move(*soa);
484
0
        if ( srv ) this->srv = std::move(*srv);
485
0
        if ( txt ) this->txt = std::move(*txt);
486
0
    }
487
488
    
489
4.17k
    RDataSRV::RDataSRV() {
490
4.17k
    }
491
492
4.17k
    RDataSRV::RDataSRV(::hilti::rt::struct_::tag::Parameters, const ::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Message>& _t_p_msg) : _t_p_msg(_t_p_msg) {
493
4.17k
    }
494
495
0
    RDataSRV::RDataSRV(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Name>>> target) : RDataSRV() {
496
0
        if ( target ) this->target = std::move(*target);
497
0
    }
498
499
    
500
5.79k
    RDataSOA::RDataSOA() {
501
5.79k
    }
502
503
5.79k
    RDataSOA::RDataSOA(::hilti::rt::struct_::tag::Parameters, const ::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Message>& _t_p_msg) : _t_p_msg(_t_p_msg) {
504
5.79k
    }
505
506
0
    RDataSOA::RDataSOA(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Name>>> mname, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Name>>> rname) : RDataSOA() {
507
0
        if ( mname ) this->mname = std::move(*mname);
508
0
        if ( rname ) this->rname = std::move(*rname);
509
0
    }
510
511
    
512
3.22k
    RDataMX::RDataMX() {
513
3.22k
    }
514
515
3.22k
    RDataMX::RDataMX(::hilti::rt::struct_::tag::Parameters, const ::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Message>& _t_p_msg) : _t_p_msg(_t_p_msg) {
516
3.22k
    }
517
518
0
    RDataMX::RDataMX(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Name>>> name) : RDataMX() {
519
0
        if ( name ) this->name = std::move(*name);
520
0
    }
521
522
    
523
    extern auto operator<<(std::ostream& o, const hlt_internal_dns_Message::DNS::Question& x) -> std::ostream&;
524
0
    Question::Question() {
525
0
    }
526
527
822k
    Question::Question(::hilti::rt::struct_::tag::Parameters, const ::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Message>& _t_p_msg) : _t_p_msg(_t_p_msg) {
528
822k
    }
529
530
0
    Question::Question(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Name>>> qname) : Question() {
531
0
        if ( qname ) this->qname = std::move(*qname);
532
0
    }
533
534
    
535
    extern auto operator<<(std::ostream& o, const hlt_internal_dns_Message::DNS::Pointer& x) -> std::ostream&;
536
    extern auto operator<<(std::ostream& o, const hlt_internal_dns_Message::DNS::Label& x) -> std::ostream&;
537
36.9k
    Pointer::Pointer() {
538
36.9k
    }
539
540
36.9k
    Pointer::Pointer(::hilti::rt::struct_::tag::Parameters, const ::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Message>& _t_p_msg, const ::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Label>& _t_p_label) : _t_p_msg(_t_p_msg), _t_p_label(_t_p_label) {
541
36.9k
    }
542
543
0
    Pointer::Pointer(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Bitfield<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>>>> len, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Name>>> name) : Pointer() {
544
0
        if ( len ) this->len = std::move(*len);
545
0
        if ( name ) this->name = std::move(*name);
546
0
    }
547
548
    
549
2.56M
    Name::Name() {
550
2.56M
    }
551
552
2.56M
    Name::Name(::hilti::rt::struct_::tag::Parameters, const ::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Message>& _t_p_msg) : _t_p_msg(_t_p_msg) {
553
2.56M
        label = ""_b;
554
2.56M
    }
555
556
0
    Name::Name(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Bytes> label) : Name() {
557
0
        if ( label ) this->label = std::move(*label);
558
0
    }
559
560
    
561
2.96k
    Message::Message() {
562
2.96k
    }
563
564
0
    Message::Message(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<hlt_internal_dns_Message::DNS::Header>> header, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Vector<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Question>>>> question, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Vector<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::ResourceRecord>>>> answer, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Vector<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::ResourceRecord>>>> authority, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Vector<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::ResourceRecord>>>> additional) : Message() {
565
0
        if ( header ) this->header = std::move(*header);
566
0
        if ( question ) this->question = std::move(*question);
567
0
        if ( answer ) this->answer = std::move(*answer);
568
0
        if ( authority ) this->authority = std::move(*authority);
569
0
        if ( additional ) this->additional = std::move(*additional);
570
0
    }
571
572
    
573
    extern void _t_hook_Label__t_on_label(::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Label>& _t_self);
574
    extern void _t_hook_Label__t_on_ptr(::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Label>& _t_self);
575
0
    Label::Label() {
576
0
    }
577
578
2.95M
    Label::Label(::hilti::rt::struct_::tag::Parameters, const ::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Message>& _t_p_msg, ::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Name>& _t_p_name) : _t_p_msg(_t_p_msg), _t_p_name(_t_p_name) {
579
2.95M
    }
580
581
0
    Label::Label(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Bitfield<::hilti::rt::integer::safe<uint8_t>, ::hilti::rt::integer::safe<uint8_t>, ::hilti::rt::integer::safe<uint8_t>>>> len, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Bytes>> label, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Pointer>>> ptr) : Label() {
582
0
        if ( len ) this->len = std::move(*len);
583
0
        if ( label ) this->label = std::move(*label);
584
0
        if ( ptr ) this->ptr = std::move(*ptr);
585
0
    }
586
587
    
588
0
    CharacterString::CharacterString() {
589
0
    }
590
591
2.31M
    CharacterString::CharacterString(::hilti::rt::struct_::tag::Parameters, const ::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Message>& _t_p_msg) : _t_p_msg(_t_p_msg) {
592
2.31M
    }
593
594
0
    CharacterString::CharacterString(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::integer::safe<uint8_t>>> len) : CharacterString() {
595
0
        if ( len ) this->len = std::move(*len);
596
0
    }
597
598
    
599
    extern void _t_hook_Header__t_on_0x25_done_17022904905284755206(::hilti::rt::ValueReference<Header>& _t_self);
600
    extern void _t_hook_Header__t_on_0x25_done(::hilti::rt::ValueReference<Header>& _t_self);
601
    extern void _t_hook_Header__t_on_0x25_done_17022904905284755206(::hilti::rt::ValueReference<Header>& _t_self);
602
    static void assert_label_len(const ::hilti::rt::Bytes& labels);
603
    extern void _t_hook_Label__t_on_label_751145481021401729(::hilti::rt::ValueReference<Label>& _t_self);
604
    extern void _t_hook_Label__t_on_label(::hilti::rt::ValueReference<Label>& _t_self);
605
    extern void _t_hook_Label__t_on_label_751145481021401729(::hilti::rt::ValueReference<Label>& _t_self);
606
    extern void _t_hook_Label__t_on_ptr_7802471963454539575(::hilti::rt::ValueReference<Label>& _t_self);
607
    extern void _t_hook_Label__t_on_ptr(::hilti::rt::ValueReference<Label>& _t_self);
608
    extern void _t_hook_Label__t_on_ptr_7802471963454539575(::hilti::rt::ValueReference<Label>& _t_self);
609
}
610
611
namespace hlt_dns_Message::DNS::Message {
612
    auto parse1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::Optional<::hilti::rt::stream::View>& _t_cur, const ::hilti::rt::Optional<::spicy::rt::UnitContext>& _t_context) -> ::hilti::rt::Resumable;
613
    auto parse2(::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Message>& _t_unit, ::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::Optional<::hilti::rt::stream::View>& _t_cur, const ::hilti::rt::Optional<::spicy::rt::UnitContext>& _t_context) -> ::hilti::rt::Resumable;
614
    auto parse3(::hilti::rt::ValueReference<::spicy::rt::ParsedUnit>& _t_gunit, ::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::Optional<::hilti::rt::stream::View>& _t_cur, const ::hilti::rt::Optional<::spicy::rt::UnitContext>& _t_context) -> ::hilti::rt::Resumable;
615
}
616
617
namespace hlt_internal_dns_Message::DNS {
618
    extern void _t_register_DNS_CharacterString();
619
    extern void _t_register_DNS_Header();
620
    extern void _t_register_DNS_Label();
621
    extern void _t_register_DNS_Message();
622
    extern void _t_register_DNS_Name();
623
    extern void _t_register_DNS_Pointer();
624
    extern void _t_register_DNS_Question();
625
    extern void _t_register_DNS_RDataMX();
626
    extern void _t_register_DNS_RDataSOA();
627
    extern void _t_register_DNS_RDataSRV();
628
    extern void _t_register_DNS_ResourceRecord();
629
    extern void _t_init_module();
630
    extern void _t_register_module();
631
}
632
633
namespace hlt_internal_dns_Message::type_info { namespace {
634
0
    const ::hilti::rt::TypeInfo _t_ti_tuple_uint_16___uint_16___uint_16___uint_16___uint_16___uint_16___uint_16___uint_16___uint_16___uint_16___uint_16___tuplex2auint16_uint16_uint16_uint16_uint16_uint16_uint16_uint16_uint16_uint16_uint16_x2b = { {}, "tuple<uint<16>, uint<16>, uint<16>, uint<16>, uint<16>, uint<16>, uint<16>, uint<16>, uint<16>, uint<16>, uint<16>>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::Tuple<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>>*>(self)); }, new ::hilti::rt::type_info::Tuple(std::vector<::hilti::rt::type_info::tuple::Element>({::hilti::rt::type_info::tuple::Element{ "", &::hilti::rt::type_info::uint16, ::hilti::rt::Tuple<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>>::elementOffset<0>() }, ::hilti::rt::type_info::tuple::Element{ "", &::hilti::rt::type_info::uint16, ::hilti::rt::Tuple<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>>::elementOffset<1>() }, ::hilti::rt::type_info::tuple::Element{ "", &::hilti::rt::type_info::uint16, ::hilti::rt::Tuple<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>>::elementOffset<2>() }, ::hilti::rt::type_info::tuple::Element{ "", &::hilti::rt::type_info::uint16, ::hilti::rt::Tuple<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>>::elementOffset<3>() }, ::hilti::rt::type_info::tuple::Element{ "", &::hilti::rt::type_info::uint16, ::hilti::rt::Tuple<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>>::elementOffset<4>() }, ::hilti::rt::type_info::tuple::Element{ "", &::hilti::rt::type_info::uint16, ::hilti::rt::Tuple<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>>::elementOffset<5>() }, ::hilti::rt::type_info::tuple::Element{ "", &::hilti::rt::type_info::uint16, ::hilti::rt::Tuple<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>>::elementOffset<6>() }, ::hilti::rt::type_info::tuple::Element{ "", &::hilti::rt::type_info::uint16, ::hilti::rt::Tuple<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>>::elementOffset<7>() }, ::hilti::rt::type_info::tuple::Element{ "", &::hilti::rt::type_info::uint16, ::hilti::rt::Tuple<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>>::elementOffset<8>() }, ::hilti::rt::type_info::tuple::Element{ "", &::hilti::rt::type_info::uint16, ::hilti::rt::Tuple<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>>::elementOffset<9>() }, ::hilti::rt::type_info::tuple::Element{ "", &::hilti::rt::type_info::uint16, ::hilti::rt::Tuple<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>>::elementOffset<10>() }})) };
635
0
    const ::hilti::rt::TypeInfo _t_ti_bitfieldx2a16x2b_x73_qr__0x3e_opcode__1__4x3e_aa__5x3e_tc__6x3e_rd__7x3e_ra__8x3e_z__9__11x3e_ad__10x3e_cd__11x3e_rcode__12__15x3e_x75_x28bit_orderx31spicy__BitOrder__MSB0_bitfieldx2a16_qr_0_0_opcode_1_4_aa_5_5_tc_6_6_rd_7_7_ra_8_8_z_9_11_ad_10_10_cd_11_11_rcode_12_15_x2b = { {}, "bitfield(16) { qr: 0; opcode: 1..4; aa: 5; tc: 6; rd: 7; ra: 8; z: 9..11; ad: 10; cd: 11; rcode: 12..15; } &bit-order=spicy::BitOrder::MSB0", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::Bitfield<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>>*>(self)); }, new ::hilti::rt::type_info::Bitfield(16, std::vector<::hilti::rt::type_info::bitfield::Bits>({::hilti::rt::type_info::bitfield::Bits{ "qr", 0, 0, &::hilti::rt::type_info::uint16 }, ::hilti::rt::type_info::bitfield::Bits{ "opcode", 1, 4, &::hilti::rt::type_info::uint16 }, ::hilti::rt::type_info::bitfield::Bits{ "aa", 5, 5, &::hilti::rt::type_info::uint16 }, ::hilti::rt::type_info::bitfield::Bits{ "tc", 6, 6, &::hilti::rt::type_info::uint16 }, ::hilti::rt::type_info::bitfield::Bits{ "rd", 7, 7, &::hilti::rt::type_info::uint16 }, ::hilti::rt::type_info::bitfield::Bits{ "ra", 8, 8, &::hilti::rt::type_info::uint16 }, ::hilti::rt::type_info::bitfield::Bits{ "z", 9, 11, &::hilti::rt::type_info::uint16 }, ::hilti::rt::type_info::bitfield::Bits{ "ad", 10, 10, &::hilti::rt::type_info::uint16 }, ::hilti::rt::type_info::bitfield::Bits{ "cd", 11, 11, &::hilti::rt::type_info::uint16 }, ::hilti::rt::type_info::bitfield::Bits{ "rcode", 12, 15, &::hilti::rt::type_info::uint16 }}), &type_info::_t_ti_tuple_uint_16___uint_16___uint_16___uint_16___uint_16___uint_16___uint_16___uint_16___uint_16___uint_16___uint_16___tuplex2auint16_uint16_uint16_uint16_uint16_uint16_uint16_uint16_uint16_uint16_uint16_x2b) };
636
0
    const ::hilti::rt::TypeInfo _t_ti_hilti__RecoverableFailure_namex2ahilti__RecoverableFailurex2b = { "hilti::RecoverableFailure", "hilti::RecoverableFailure", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::RecoverableFailure*>(self)); }, new ::hilti::rt::type_info::Exception() };
637
0
    const ::hilti::rt::TypeInfo _t_ti_optional_spicy__RecoverableFailure__optionalx2anamex2ahilti__RecoverableFailurex2bx2b = { {}, "optional<spicy::RecoverableFailure>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>*>(self)); }, new ::hilti::rt::type_info::Optional(&type_info::_t_ti_hilti__RecoverableFailure_namex2ahilti__RecoverableFailurex2b, ::hilti::rt::type_info::Optional::accessor<::hilti::rt::RecoverableFailure>()) };
638
0
    const ::hilti::rt::TypeInfo _t_ti_DNS__Header_namex2aDNS__Headerx2b = { "DNS::Header", "DNS::Header", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const hlt_internal_dns_Message::DNS::Header*>(self)); }, new ::hilti::rt::type_info::Struct(std::vector<::hilti::rt::type_info::struct_::Field>({::hilti::rt::type_info::struct_::Field{ "id", &::hilti::rt::type_info::uint16, std::ptrdiff_t{-1}, false, false, false }, ::hilti::rt::type_info::struct_::Field{ "flags", &type_info::_t_ti_bitfieldx2a16x2b_x73_qr__0x3e_opcode__1__4x3e_aa__5x3e_tc__6x3e_rd__7x3e_ra__8x3e_z__9__11x3e_ad__10x3e_cd__11x3e_rcode__12__15x3e_x75_x28bit_orderx31spicy__BitOrder__MSB0_bitfieldx2a16_qr_0_0_opcode_1_4_aa_5_5_tc_6_6_rd_7_7_ra_8_8_z_9_11_ad_10_10_cd_11_11_rcode_12_15_x2b, static_cast<std::ptrdiff_t>(offsetof(DNS::Header, flags)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::Bitfield<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>>>() }, ::hilti::rt::type_info::struct_::Field{ "qdcount", &::hilti::rt::type_info::uint16, static_cast<std::ptrdiff_t>(offsetof(DNS::Header, qdcount)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::integer::safe<uint16_t>>() }, ::hilti::rt::type_info::struct_::Field{ "ancount", &::hilti::rt::type_info::uint16, static_cast<std::ptrdiff_t>(offsetof(DNS::Header, ancount)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::integer::safe<uint16_t>>() }, ::hilti::rt::type_info::struct_::Field{ "nscount", &::hilti::rt::type_info::uint16, static_cast<std::ptrdiff_t>(offsetof(DNS::Header, nscount)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::integer::safe<uint16_t>>() }, ::hilti::rt::type_info::struct_::Field{ "arcount", &::hilti::rt::type_info::uint16, static_cast<std::ptrdiff_t>(offsetof(DNS::Header, arcount)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::integer::safe<uint16_t>>() }, ::hilti::rt::type_info::struct_::Field{ "rejected", &::hilti::rt::type_info::bool_, std::ptrdiff_t{-1}, false, false, false }, ::hilti::rt::type_info::struct_::Field{ "_t_error", &type_info::_t_ti_optional_spicy__RecoverableFailure__optionalx2anamex2ahilti__RecoverableFailurex2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::Header, _t_error)), true, false, true }})) };
639
0
    const ::hilti::rt::TypeInfo _t_ti_DNS__RDType_namex2aDNS__RDTypex2b = { "DNS::RDType", "DNS::RDType", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const DNS::RDType*>(self)); }, new ::hilti::rt::type_info::Enum(std::vector<::hilti::rt::type_info::enum_::Label>({::hilti::rt::type_info::enum_::Label{ "A", 1 }, ::hilti::rt::type_info::enum_::Label{ "NS", 2 }, ::hilti::rt::type_info::enum_::Label{ "MD", 3 }, ::hilti::rt::type_info::enum_::Label{ "MF", 4 }, ::hilti::rt::type_info::enum_::Label{ "CNAME", 5 }, ::hilti::rt::type_info::enum_::Label{ "SOA", 6 }, ::hilti::rt::type_info::enum_::Label{ "MB", 7 }, ::hilti::rt::type_info::enum_::Label{ "MG", 8 }, ::hilti::rt::type_info::enum_::Label{ "MR", 9 }, ::hilti::rt::type_info::enum_::Label{ "NULL_", 10 }, ::hilti::rt::type_info::enum_::Label{ "WKS", 11 }, ::hilti::rt::type_info::enum_::Label{ "PTR", 12 }, ::hilti::rt::type_info::enum_::Label{ "HINFO", 13 }, ::hilti::rt::type_info::enum_::Label{ "MINFO", 14 }, ::hilti::rt::type_info::enum_::Label{ "MX", 15 }, ::hilti::rt::type_info::enum_::Label{ "TXT", 16 }, ::hilti::rt::type_info::enum_::Label{ "AAAA", 28 }, ::hilti::rt::type_info::enum_::Label{ "NBS", 32 }, ::hilti::rt::type_info::enum_::Label{ "SRV", 33 }, ::hilti::rt::type_info::enum_::Label{ "A6", 38 }, ::hilti::rt::type_info::enum_::Label{ "EDNS", 41 }, ::hilti::rt::type_info::enum_::Label{ "Undef", -1 }})) };
640
0
    const ::hilti::rt::TypeInfo _t_ti_DNS__RRType_namex2aDNS__RRTypex2b = { "DNS::RRType", "DNS::RRType", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const DNS::RRType*>(self)); }, new ::hilti::rt::type_info::Enum(std::vector<::hilti::rt::type_info::enum_::Label>({::hilti::rt::type_info::enum_::Label{ "ANSWER", 1 }, ::hilti::rt::type_info::enum_::Label{ "AUTH", 2 }, ::hilti::rt::type_info::enum_::Label{ "ADDL", 3 }, ::hilti::rt::type_info::enum_::Label{ "Undef", -1 }})) };
641
0
    const ::hilti::rt::TypeInfo _t_ti_DNS__Name_namex2aDNS__Namex2b = { "DNS::Name", "DNS::Name", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const hlt_internal_dns_Message::DNS::Name*>(self)); }, new ::hilti::rt::type_info::Struct(std::vector<::hilti::rt::type_info::struct_::Field>({::hilti::rt::type_info::struct_::Field{ "label", &::hilti::rt::type_info::bytes, static_cast<std::ptrdiff_t>(offsetof(DNS::Name, label)), false, false, true }, ::hilti::rt::type_info::struct_::Field{ "_t_error", &type_info::_t_ti_optional_spicy__RecoverableFailure__optionalx2anamex2ahilti__RecoverableFailurex2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::Name, _t_error)), true, false, true }})) };
642
0
    const ::hilti::rt::TypeInfo _t_ti_value_ref_Name__value_refx2anamex2aDNS__Namex2bx2b = { {}, "value_ref<Name>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Name>*>(self)); }, new ::hilti::rt::type_info::ValueReference(&type_info::_t_ti_DNS__Name_namex2aDNS__Namex2b, ::hilti::rt::type_info::ValueReference::accessor<hlt_internal_dns_Message::DNS::Name>()) };
643
0
    const ::hilti::rt::TypeInfo _t_ti_DNS__RDataMX_namex2aDNS__RDataMXx2b = { "DNS::RDataMX", "DNS::RDataMX", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const hlt_internal_dns_Message::DNS::RDataMX*>(self)); }, new ::hilti::rt::type_info::Struct(std::vector<::hilti::rt::type_info::struct_::Field>({::hilti::rt::type_info::struct_::Field{ "preference", &::hilti::rt::type_info::uint16, std::ptrdiff_t{-1}, false, false, false }, ::hilti::rt::type_info::struct_::Field{ "name", &type_info::_t_ti_value_ref_Name__value_refx2anamex2aDNS__Namex2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::RDataMX, name)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Name>>() }, ::hilti::rt::type_info::struct_::Field{ "_t_error", &type_info::_t_ti_optional_spicy__RecoverableFailure__optionalx2anamex2ahilti__RecoverableFailurex2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::RDataMX, _t_error)), true, false, true }})) };
644
0
    const ::hilti::rt::TypeInfo _t_ti_value_ref_RDataMX__value_refx2anamex2aDNS__RDataMXx2bx2b = { {}, "value_ref<RDataMX>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::RDataMX>*>(self)); }, new ::hilti::rt::type_info::ValueReference(&type_info::_t_ti_DNS__RDataMX_namex2aDNS__RDataMXx2b, ::hilti::rt::type_info::ValueReference::accessor<hlt_internal_dns_Message::DNS::RDataMX>()) };
645
0
    const ::hilti::rt::TypeInfo _t_ti_DNS__RDataSOA_namex2aDNS__RDataSOAx2b = { "DNS::RDataSOA", "DNS::RDataSOA", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const hlt_internal_dns_Message::DNS::RDataSOA*>(self)); }, new ::hilti::rt::type_info::Struct(std::vector<::hilti::rt::type_info::struct_::Field>({::hilti::rt::type_info::struct_::Field{ "mname", &type_info::_t_ti_value_ref_Name__value_refx2anamex2aDNS__Namex2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::RDataSOA, mname)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Name>>() }, ::hilti::rt::type_info::struct_::Field{ "rname", &type_info::_t_ti_value_ref_Name__value_refx2anamex2aDNS__Namex2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::RDataSOA, rname)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Name>>() }, ::hilti::rt::type_info::struct_::Field{ "serial", &::hilti::rt::type_info::uint32, std::ptrdiff_t{-1}, false, false, false }, ::hilti::rt::type_info::struct_::Field{ "refresh", &::hilti::rt::type_info::interval, std::ptrdiff_t{-1}, false, false, false }, ::hilti::rt::type_info::struct_::Field{ "retry", &::hilti::rt::type_info::interval, std::ptrdiff_t{-1}, false, false, false }, ::hilti::rt::type_info::struct_::Field{ "expire", &::hilti::rt::type_info::interval, std::ptrdiff_t{-1}, false, false, false }, ::hilti::rt::type_info::struct_::Field{ "minimum", &::hilti::rt::type_info::interval, std::ptrdiff_t{-1}, false, false, false }, ::hilti::rt::type_info::struct_::Field{ "_t_error", &type_info::_t_ti_optional_spicy__RecoverableFailure__optionalx2anamex2ahilti__RecoverableFailurex2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::RDataSOA, _t_error)), true, false, true }})) };
646
0
    const ::hilti::rt::TypeInfo _t_ti_value_ref_RDataSOA__value_refx2anamex2aDNS__RDataSOAx2bx2b = { {}, "value_ref<RDataSOA>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::RDataSOA>*>(self)); }, new ::hilti::rt::type_info::ValueReference(&type_info::_t_ti_DNS__RDataSOA_namex2aDNS__RDataSOAx2b, ::hilti::rt::type_info::ValueReference::accessor<hlt_internal_dns_Message::DNS::RDataSOA>()) };
647
0
    const ::hilti::rt::TypeInfo _t_ti_DNS__RDataSRV_namex2aDNS__RDataSRVx2b = { "DNS::RDataSRV", "DNS::RDataSRV", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const hlt_internal_dns_Message::DNS::RDataSRV*>(self)); }, new ::hilti::rt::type_info::Struct(std::vector<::hilti::rt::type_info::struct_::Field>({::hilti::rt::type_info::struct_::Field{ "priority_", &::hilti::rt::type_info::uint16, std::ptrdiff_t{-1}, false, false, false }, ::hilti::rt::type_info::struct_::Field{ "weight", &::hilti::rt::type_info::uint16, std::ptrdiff_t{-1}, false, false, false }, ::hilti::rt::type_info::struct_::Field{ "port_", &::hilti::rt::type_info::uint16, std::ptrdiff_t{-1}, false, false, false }, ::hilti::rt::type_info::struct_::Field{ "target", &type_info::_t_ti_value_ref_Name__value_refx2anamex2aDNS__Namex2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::RDataSRV, target)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Name>>() }, ::hilti::rt::type_info::struct_::Field{ "_t_error", &type_info::_t_ti_optional_spicy__RecoverableFailure__optionalx2anamex2ahilti__RecoverableFailurex2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::RDataSRV, _t_error)), true, false, true }})) };
648
0
    const ::hilti::rt::TypeInfo _t_ti_value_ref_RDataSRV__value_refx2anamex2aDNS__RDataSRVx2bx2b = { {}, "value_ref<RDataSRV>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::RDataSRV>*>(self)); }, new ::hilti::rt::type_info::ValueReference(&type_info::_t_ti_DNS__RDataSRV_namex2aDNS__RDataSRVx2b, ::hilti::rt::type_info::ValueReference::accessor<hlt_internal_dns_Message::DNS::RDataSRV>()) };
649
0
    const ::hilti::rt::TypeInfo _t_ti_DNS__CharacterString_namex2aDNS__CharacterStringx2b = { "DNS::CharacterString", "DNS::CharacterString", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const hlt_internal_dns_Message::DNS::CharacterString*>(self)); }, new ::hilti::rt::type_info::Struct(std::vector<::hilti::rt::type_info::struct_::Field>({::hilti::rt::type_info::struct_::Field{ "len", &::hilti::rt::type_info::uint8, static_cast<std::ptrdiff_t>(offsetof(DNS::CharacterString, len)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::integer::safe<uint8_t>>() }, ::hilti::rt::type_info::struct_::Field{ "data", &::hilti::rt::type_info::bytes, std::ptrdiff_t{-1}, false, false, false }, ::hilti::rt::type_info::struct_::Field{ "_t_error", &type_info::_t_ti_optional_spicy__RecoverableFailure__optionalx2anamex2ahilti__RecoverableFailurex2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::CharacterString, _t_error)), true, false, true }})) };
650
0
    const ::hilti::rt::TypeInfo _t_ti_value_ref_CharacterString__value_refx2anamex2aDNS__CharacterStringx2bx2b = { {}, "value_ref<CharacterString>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::CharacterString>*>(self)); }, new ::hilti::rt::type_info::ValueReference(&type_info::_t_ti_DNS__CharacterString_namex2aDNS__CharacterStringx2b, ::hilti::rt::type_info::ValueReference::accessor<hlt_internal_dns_Message::DNS::CharacterString>()) };
651
0
    const ::hilti::rt::TypeInfo _t_ti_vector_value_ref_CharacterString___vectorx2anamex2aDNS__CharacterStringx2bx2b = { {}, "vector<value_ref<CharacterString>>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::Vector<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::CharacterString>>*>(self)); }, new ::hilti::rt::type_info::Vector(&type_info::_t_ti_value_ref_CharacterString__value_refx2anamex2aDNS__CharacterStringx2bx2b, ::hilti::rt::type_info::Vector::accessor<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::CharacterString>>()) };
652
0
    const ::hilti::rt::TypeInfo _t_ti_DNS__ResourceRecord_namex2aDNS__ResourceRecordx2b = { "DNS::ResourceRecord", "DNS::ResourceRecord", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const hlt_internal_dns_Message::DNS::ResourceRecord*>(self)); }, new ::hilti::rt::type_info::Struct(std::vector<::hilti::rt::type_info::struct_::Field>({::hilti::rt::type_info::struct_::Field{ "name", &type_info::_t_ti_value_ref_Name__value_refx2anamex2aDNS__Namex2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::ResourceRecord, name)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Name>>() }, ::hilti::rt::type_info::struct_::Field{ "ty", &type_info::_t_ti_DNS__RDType_namex2aDNS__RDTypex2b, static_cast<std::ptrdiff_t>(offsetof(DNS::ResourceRecord, ty)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<DNS::RDType>() }, ::hilti::rt::type_info::struct_::Field{ "class", &::hilti::rt::type_info::uint16, std::ptrdiff_t{-1}, false, false, false }, ::hilti::rt::type_info::struct_::Field{ "ttl", &::hilti::rt::type_info::interval, std::ptrdiff_t{-1}, false, false, false }, ::hilti::rt::type_info::struct_::Field{ "rdlen", &::hilti::rt::type_info::uint16, static_cast<std::ptrdiff_t>(offsetof(DNS::ResourceRecord, rdlen)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::integer::safe<uint16_t>>() }, ::hilti::rt::type_info::struct_::Field{ "rname", &type_info::_t_ti_value_ref_Name__value_refx2anamex2aDNS__Namex2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::ResourceRecord, rname)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Name>>() }, ::hilti::rt::type_info::struct_::Field{ "a", &::hilti::rt::type_info::address, std::ptrdiff_t{-1}, false, false, false }, ::hilti::rt::type_info::struct_::Field{ "mx", &type_info::_t_ti_value_ref_RDataMX__value_refx2anamex2aDNS__RDataMXx2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::ResourceRecord, mx)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::RDataMX>>() }, ::hilti::rt::type_info::struct_::Field{ "soa", &type_info::_t_ti_value_ref_RDataSOA__value_refx2anamex2aDNS__RDataSOAx2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::ResourceRecord, soa)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::RDataSOA>>() }, ::hilti::rt::type_info::struct_::Field{ "srv", &type_info::_t_ti_value_ref_RDataSRV__value_refx2anamex2aDNS__RDataSRVx2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::ResourceRecord, srv)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::RDataSRV>>() }, ::hilti::rt::type_info::struct_::Field{ "txt", &type_info::_t_ti_vector_value_ref_CharacterString___vectorx2anamex2aDNS__CharacterStringx2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::ResourceRecord, txt)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::Vector<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::CharacterString>>>() }, ::hilti::rt::type_info::struct_::Field{ "rdata", &::hilti::rt::type_info::bytes, std::ptrdiff_t{-1}, false, false, false }, ::hilti::rt::type_info::struct_::Field{ "_t_error", &type_info::_t_ti_optional_spicy__RecoverableFailure__optionalx2anamex2ahilti__RecoverableFailurex2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::ResourceRecord, _t_error)), true, false, true }})) };
653
0
    const ::hilti::rt::TypeInfo _t_ti_DNS__Question_namex2aDNS__Questionx2b = { "DNS::Question", "DNS::Question", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const hlt_internal_dns_Message::DNS::Question*>(self)); }, new ::hilti::rt::type_info::Struct(std::vector<::hilti::rt::type_info::struct_::Field>({::hilti::rt::type_info::struct_::Field{ "qname", &type_info::_t_ti_value_ref_Name__value_refx2anamex2aDNS__Namex2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::Question, qname)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Name>>() }, ::hilti::rt::type_info::struct_::Field{ "qtype", &::hilti::rt::type_info::uint16, std::ptrdiff_t{-1}, false, false, false }, ::hilti::rt::type_info::struct_::Field{ "qclass", &::hilti::rt::type_info::uint16, std::ptrdiff_t{-1}, false, false, false }, ::hilti::rt::type_info::struct_::Field{ "_t_error", &type_info::_t_ti_optional_spicy__RecoverableFailure__optionalx2anamex2ahilti__RecoverableFailurex2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::Question, _t_error)), true, false, true }})) };
654
0
    const ::hilti::rt::TypeInfo _t_ti_tuple_uint_16___uint_16___tuplex2auint16_uint16_x2b = { {}, "tuple<uint<16>, uint<16>>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::Tuple<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>>*>(self)); }, new ::hilti::rt::type_info::Tuple(std::vector<::hilti::rt::type_info::tuple::Element>({::hilti::rt::type_info::tuple::Element{ "", &::hilti::rt::type_info::uint16, ::hilti::rt::Tuple<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>>::elementOffset<0>() }, ::hilti::rt::type_info::tuple::Element{ "", &::hilti::rt::type_info::uint16, ::hilti::rt::Tuple<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>>::elementOffset<1>() }})) };
655
0
    const ::hilti::rt::TypeInfo _t_ti_bitfieldx2a16x2b_x73_offset__0__13x3e_x75_bitfieldx2a16_offset_0_13_x2b = { {}, "bitfield(16) { offset: 0..13; }", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::Bitfield<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>>*>(self)); }, new ::hilti::rt::type_info::Bitfield(16, std::vector<::hilti::rt::type_info::bitfield::Bits>({::hilti::rt::type_info::bitfield::Bits{ "offset", 0, 13, &::hilti::rt::type_info::uint16 }}), &type_info::_t_ti_tuple_uint_16___uint_16___tuplex2auint16_uint16_x2b) };
656
0
    const ::hilti::rt::TypeInfo _t_ti_DNS__Pointer_namex2aDNS__Pointerx2b = { "DNS::Pointer", "DNS::Pointer", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const hlt_internal_dns_Message::DNS::Pointer*>(self)); }, new ::hilti::rt::type_info::Struct(std::vector<::hilti::rt::type_info::struct_::Field>({::hilti::rt::type_info::struct_::Field{ "len", &type_info::_t_ti_bitfieldx2a16x2b_x73_offset__0__13x3e_x75_bitfieldx2a16_offset_0_13_x2b, static_cast<std::ptrdiff_t>(offsetof(DNS::Pointer, len)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::Bitfield<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::integer::safe<uint16_t>>>() }, ::hilti::rt::type_info::struct_::Field{ "name", &type_info::_t_ti_value_ref_Name__value_refx2anamex2aDNS__Namex2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::Pointer, name)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Name>>() }, ::hilti::rt::type_info::struct_::Field{ "_t_error", &type_info::_t_ti_optional_spicy__RecoverableFailure__optionalx2anamex2ahilti__RecoverableFailurex2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::Pointer, _t_error)), true, false, true }})) };
657
0
    const ::hilti::rt::TypeInfo _t_ti_value_ref_Question__value_refx2anamex2aDNS__Questionx2bx2b = { {}, "value_ref<Question>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Question>*>(self)); }, new ::hilti::rt::type_info::ValueReference(&type_info::_t_ti_DNS__Question_namex2aDNS__Questionx2b, ::hilti::rt::type_info::ValueReference::accessor<hlt_internal_dns_Message::DNS::Question>()) };
658
0
    const ::hilti::rt::TypeInfo _t_ti_vector_value_ref_Question___vectorx2anamex2aDNS__Questionx2bx2b = { {}, "vector<value_ref<Question>>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::Vector<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Question>>*>(self)); }, new ::hilti::rt::type_info::Vector(&type_info::_t_ti_value_ref_Question__value_refx2anamex2aDNS__Questionx2bx2b, ::hilti::rt::type_info::Vector::accessor<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Question>>()) };
659
0
    const ::hilti::rt::TypeInfo _t_ti_value_ref_ResourceRecord__value_refx2anamex2aDNS__ResourceRecordx2bx2b = { {}, "value_ref<ResourceRecord>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::ResourceRecord>*>(self)); }, new ::hilti::rt::type_info::ValueReference(&type_info::_t_ti_DNS__ResourceRecord_namex2aDNS__ResourceRecordx2b, ::hilti::rt::type_info::ValueReference::accessor<hlt_internal_dns_Message::DNS::ResourceRecord>()) };
660
0
    const ::hilti::rt::TypeInfo _t_ti_vector_value_ref_ResourceRecord___vectorx2anamex2aDNS__ResourceRecordx2bx2b = { {}, "vector<value_ref<ResourceRecord>>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::Vector<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::ResourceRecord>>*>(self)); }, new ::hilti::rt::type_info::Vector(&type_info::_t_ti_value_ref_ResourceRecord__value_refx2anamex2aDNS__ResourceRecordx2bx2b, ::hilti::rt::type_info::Vector::accessor<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::ResourceRecord>>()) };
661
0
    const ::hilti::rt::TypeInfo _t_ti_optional_iterator_stream___optionalx2aiteratorx2astreamx2bx2b = { {}, "optional<iterator<stream>>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>*>(self)); }, new ::hilti::rt::type_info::Optional(&::hilti::rt::type_info::stream_iterator, ::hilti::rt::type_info::Optional::accessor<::hilti::rt::stream::SafeConstIterator>()) };
662
0
    const ::hilti::rt::TypeInfo _t_ti_DNS__Message_namex2aDNS__Messagex2b = { "DNS::Message", "DNS::Message", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const hlt_internal_dns_Message::DNS::Message*>(self)); }, new ::hilti::rt::type_info::Struct(std::vector<::hilti::rt::type_info::struct_::Field>({::hilti::rt::type_info::struct_::Field{ "header", &type_info::_t_ti_DNS__Header_namex2aDNS__Headerx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::Message, header)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<hlt_internal_dns_Message::DNS::Header>() }, ::hilti::rt::type_info::struct_::Field{ "question", &type_info::_t_ti_vector_value_ref_Question___vectorx2anamex2aDNS__Questionx2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::Message, question)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::Vector<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Question>>>() }, ::hilti::rt::type_info::struct_::Field{ "answer", &type_info::_t_ti_vector_value_ref_ResourceRecord___vectorx2anamex2aDNS__ResourceRecordx2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::Message, answer)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::Vector<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::ResourceRecord>>>() }, ::hilti::rt::type_info::struct_::Field{ "authority", &type_info::_t_ti_vector_value_ref_ResourceRecord___vectorx2anamex2aDNS__ResourceRecordx2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::Message, authority)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::Vector<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::ResourceRecord>>>() }, ::hilti::rt::type_info::struct_::Field{ "additional", &type_info::_t_ti_vector_value_ref_ResourceRecord___vectorx2anamex2aDNS__ResourceRecordx2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::Message, additional)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::Vector<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::ResourceRecord>>>() }, ::hilti::rt::type_info::struct_::Field{ "_t_begin", &::hilti::rt::type_info::stream_iterator, static_cast<std::ptrdiff_t>(offsetof(DNS::Message, _t_begin)), true, false, true }, ::hilti::rt::type_info::struct_::Field{ "_t_position_update", &type_info::_t_ti_optional_iterator_stream___optionalx2aiteratorx2astreamx2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::Message, _t_position_update)), true, false, true }, ::hilti::rt::type_info::struct_::Field{ "_t_error", &type_info::_t_ti_optional_spicy__RecoverableFailure__optionalx2anamex2ahilti__RecoverableFailurex2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::Message, _t_error)), true, false, true }})) };
663
0
    const ::hilti::rt::TypeInfo _t_ti_tuple_uint_8___uint_8___uint_8___tuplex2auint8_uint8_uint8_x2b = { {}, "tuple<uint<8>, uint<8>, uint<8>>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::Tuple<::hilti::rt::integer::safe<uint8_t>, ::hilti::rt::integer::safe<uint8_t>, ::hilti::rt::integer::safe<uint8_t>>*>(self)); }, new ::hilti::rt::type_info::Tuple(std::vector<::hilti::rt::type_info::tuple::Element>({::hilti::rt::type_info::tuple::Element{ "", &::hilti::rt::type_info::uint8, ::hilti::rt::Tuple<::hilti::rt::integer::safe<uint8_t>, ::hilti::rt::integer::safe<uint8_t>, ::hilti::rt::integer::safe<uint8_t>>::elementOffset<0>() }, ::hilti::rt::type_info::tuple::Element{ "", &::hilti::rt::type_info::uint8, ::hilti::rt::Tuple<::hilti::rt::integer::safe<uint8_t>, ::hilti::rt::integer::safe<uint8_t>, ::hilti::rt::integer::safe<uint8_t>>::elementOffset<1>() }, ::hilti::rt::type_info::tuple::Element{ "", &::hilti::rt::type_info::uint8, ::hilti::rt::Tuple<::hilti::rt::integer::safe<uint8_t>, ::hilti::rt::integer::safe<uint8_t>, ::hilti::rt::integer::safe<uint8_t>>::elementOffset<2>() }})) };
664
0
    const ::hilti::rt::TypeInfo _t_ti_bitfieldx2a8x2b_x73_offset__0__5x3e_compressed__6__7x3e_x75_bitfieldx2a8_offset_0_5_compressed_6_7_x2b = { {}, "bitfield(8) { offset: 0..5; compressed: 6..7; }", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::Bitfield<::hilti::rt::integer::safe<uint8_t>, ::hilti::rt::integer::safe<uint8_t>, ::hilti::rt::integer::safe<uint8_t>>*>(self)); }, new ::hilti::rt::type_info::Bitfield(8, std::vector<::hilti::rt::type_info::bitfield::Bits>({::hilti::rt::type_info::bitfield::Bits{ "offset", 0, 5, &::hilti::rt::type_info::uint8 }, ::hilti::rt::type_info::bitfield::Bits{ "compressed", 6, 7, &::hilti::rt::type_info::uint8 }}), &type_info::_t_ti_tuple_uint_8___uint_8___uint_8___tuplex2auint8_uint8_uint8_x2b) };
665
0
    const ::hilti::rt::TypeInfo _t_ti_value_ref_Pointer__value_refx2anamex2aDNS__Pointerx2bx2b = { {}, "value_ref<Pointer>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Pointer>*>(self)); }, new ::hilti::rt::type_info::ValueReference(&type_info::_t_ti_DNS__Pointer_namex2aDNS__Pointerx2b, ::hilti::rt::type_info::ValueReference::accessor<hlt_internal_dns_Message::DNS::Pointer>()) };
666
0
    const ::hilti::rt::TypeInfo _t_ti_DNS__Label_namex2aDNS__Labelx2b = { "DNS::Label", "DNS::Label", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const hlt_internal_dns_Message::DNS::Label*>(self)); }, new ::hilti::rt::type_info::Struct(std::vector<::hilti::rt::type_info::struct_::Field>({::hilti::rt::type_info::struct_::Field{ "len", &type_info::_t_ti_bitfieldx2a8x2b_x73_offset__0__5x3e_compressed__6__7x3e_x75_bitfieldx2a8_offset_0_5_compressed_6_7_x2b, static_cast<std::ptrdiff_t>(offsetof(DNS::Label, len)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::Bitfield<::hilti::rt::integer::safe<uint8_t>, ::hilti::rt::integer::safe<uint8_t>, ::hilti::rt::integer::safe<uint8_t>>>() }, ::hilti::rt::type_info::struct_::Field{ "label", &::hilti::rt::type_info::bytes, static_cast<std::ptrdiff_t>(offsetof(DNS::Label, label)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::Bytes>() }, ::hilti::rt::type_info::struct_::Field{ "ptr", &type_info::_t_ti_value_ref_Pointer__value_refx2anamex2aDNS__Pointerx2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::Label, ptr)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Pointer>>() }, ::hilti::rt::type_info::struct_::Field{ "_t_begin", &::hilti::rt::type_info::stream_iterator, static_cast<std::ptrdiff_t>(offsetof(DNS::Label, _t_begin)), true, false, true }, ::hilti::rt::type_info::struct_::Field{ "_t_position_update", &type_info::_t_ti_optional_iterator_stream___optionalx2aiteratorx2astreamx2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::Label, _t_position_update)), true, false, true }, ::hilti::rt::type_info::struct_::Field{ "_t_error", &type_info::_t_ti_optional_spicy__RecoverableFailure__optionalx2anamex2ahilti__RecoverableFailurex2bx2b, static_cast<std::ptrdiff_t>(offsetof(DNS::Label, _t_error)), true, false, true }})) };
667
0
    const ::hilti::rt::TypeInfo _t_ti_value_ref_DNS__Message__value_refx2anamex2aDNS__Messagex2bx2b = { {}, "value_ref<DNS::Message>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Message>*>(self)); }, new ::hilti::rt::type_info::ValueReference(&type_info::_t_ti_DNS__Message_namex2aDNS__Messagex2b, ::hilti::rt::type_info::ValueReference::accessor<hlt_internal_dns_Message::DNS::Message>()) };
668
0
    const ::hilti::rt::TypeInfo _t_ti_strong_ref_const_DNS__Message__strong_refx2anamex2aDNS__Messagex2bx2b = { {}, "strong_ref<const DNS::Message>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::StrongReference<hlt_internal_dns_Message::DNS::Message>*>(self)); }, new ::hilti::rt::type_info::StrongReference(&type_info::_t_ti_DNS__Message_namex2aDNS__Messagex2b, ::hilti::rt::type_info::StrongReference::accessor<hlt_internal_dns_Message::DNS::Message>()) };
669
} }
670
671
HILTI_PRE_INIT(hlt_internal_dns_Message::DNS::_t_register_module)
672
673
0
inline auto ::hilti::rt::detail::adl::to_string(hlt_internal_dns_Message::DNS::RDType x, adl::tag) -> std::string {
674
0
    switch ( x.value() ) {
675
0
        case hlt_internal_dns_Message::DNS::RDType::EDNS: return "RDType::EDNS";
676
0
        case hlt_internal_dns_Message::DNS::RDType::A6: return "RDType::A6";
677
0
        case hlt_internal_dns_Message::DNS::RDType::SRV: return "RDType::SRV";
678
0
        case hlt_internal_dns_Message::DNS::RDType::NBS: return "RDType::NBS";
679
0
        case hlt_internal_dns_Message::DNS::RDType::AAAA: return "RDType::AAAA";
680
0
        case hlt_internal_dns_Message::DNS::RDType::TXT: return "RDType::TXT";
681
0
        case hlt_internal_dns_Message::DNS::RDType::MX: return "RDType::MX";
682
0
        case hlt_internal_dns_Message::DNS::RDType::MINFO: return "RDType::MINFO";
683
0
        case hlt_internal_dns_Message::DNS::RDType::HINFO: return "RDType::HINFO";
684
0
        case hlt_internal_dns_Message::DNS::RDType::PTR: return "RDType::PTR";
685
0
        case hlt_internal_dns_Message::DNS::RDType::WKS: return "RDType::WKS";
686
0
        case hlt_internal_dns_Message::DNS::RDType::NULL_: return "RDType::NULL";
687
0
        case hlt_internal_dns_Message::DNS::RDType::MR: return "RDType::MR";
688
0
        case hlt_internal_dns_Message::DNS::RDType::MG: return "RDType::MG";
689
0
        case hlt_internal_dns_Message::DNS::RDType::MB: return "RDType::MB";
690
0
        case hlt_internal_dns_Message::DNS::RDType::SOA: return "RDType::SOA";
691
0
        case hlt_internal_dns_Message::DNS::RDType::CNAME: return "RDType::CNAME";
692
0
        case hlt_internal_dns_Message::DNS::RDType::MF: return "RDType::MF";
693
0
        case hlt_internal_dns_Message::DNS::RDType::MD: return "RDType::MD";
694
0
        case hlt_internal_dns_Message::DNS::RDType::NS: return "RDType::NS";
695
0
        case hlt_internal_dns_Message::DNS::RDType::A: return "RDType::A";
696
0
        case hlt_internal_dns_Message::DNS::RDType::Undef: return "RDType::Undef";
697
0
        default: return ::hilti::rt::fmt("RDType::<unknown-%" PRIu64 ">", x.value());
698
0
    }
699
0
}
700
701
0
inline auto ::hilti::rt::detail::adl::to_string(hlt_internal_dns_Message::DNS::RRType x, adl::tag) -> std::string {
702
0
    switch ( x.value() ) {
703
0
        case hlt_internal_dns_Message::DNS::RRType::ADDL: return "RRType::ADDL";
704
0
        case hlt_internal_dns_Message::DNS::RRType::AUTH: return "RRType::AUTH";
705
0
        case hlt_internal_dns_Message::DNS::RRType::ANSWER: return "RRType::ANSWER";
706
0
        case hlt_internal_dns_Message::DNS::RRType::Undef: return "RRType::Undef";
707
0
        default: return ::hilti::rt::fmt("RRType::<unknown-%" PRIu64 ">", x.value());
708
0
    }
709
0
}
710
711
2.96k
auto hlt_dns_Message::DNS::Message::parse1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::Optional<::hilti::rt::stream::View>& _t_cur, const ::hilti::rt::Optional<::spicy::rt::UnitContext>& _t_context) -> ::hilti::rt::Resumable {
712
2.96k
    auto args = std::make_tuple(::hilti::rt::resumable::detail::copyArg(_t_data), ::hilti::rt::resumable::detail::copyArg(_t_cur), ::hilti::rt::resumable::detail::copyArg(_t_context));
713
2.96k
    auto args_on_heap = std::make_shared<decltype(args)>(std::move(args));
714
2.96k
    auto cb = [args_on_heap = std::move(args_on_heap)](::hilti::rt::resumable::Handle* r) -> ::hilti::rt::any {
715
2.96k
        return hlt_internal_dns_Message::DNS::Message::parse1(std::get<0>(*args_on_heap), std::get<1>(*args_on_heap), std::get<2>(*args_on_heap));
716
2.96k
    };
717
718
2.96k
    auto r = std::make_unique<::hilti::rt::Resumable>(std::move(cb));
719
2.96k
    r->run();
720
2.96k
    return std::move(*r);
721
2.96k
}
722
723
0
auto hlt_dns_Message::DNS::Message::parse2(::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Message>& _t_unit, ::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::Optional<::hilti::rt::stream::View>& _t_cur, const ::hilti::rt::Optional<::spicy::rt::UnitContext>& _t_context) -> ::hilti::rt::Resumable {
724
0
    auto args = std::make_tuple(::hilti::rt::resumable::detail::copyArg(_t_unit), ::hilti::rt::resumable::detail::copyArg(_t_data), ::hilti::rt::resumable::detail::copyArg(_t_cur), ::hilti::rt::resumable::detail::copyArg(_t_context));
725
0
    auto args_on_heap = std::make_shared<decltype(args)>(std::move(args));
726
0
    auto cb = [args_on_heap = std::move(args_on_heap)](::hilti::rt::resumable::Handle* r) -> ::hilti::rt::any {
727
0
        return hlt_internal_dns_Message::DNS::Message::parse2(std::get<0>(*args_on_heap), std::get<1>(*args_on_heap), std::get<2>(*args_on_heap), std::get<3>(*args_on_heap));
728
0
    };
729
730
0
    auto r = std::make_unique<::hilti::rt::Resumable>(std::move(cb));
731
0
    r->run();
732
0
    return std::move(*r);
733
0
}
734
735
0
auto hlt_dns_Message::DNS::Message::parse3(::hilti::rt::ValueReference<::spicy::rt::ParsedUnit>& _t_gunit, ::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::Optional<::hilti::rt::stream::View>& _t_cur, const ::hilti::rt::Optional<::spicy::rt::UnitContext>& _t_context) -> ::hilti::rt::Resumable {
736
0
    auto args = std::make_tuple(::hilti::rt::resumable::detail::copyArg(_t_gunit), ::hilti::rt::resumable::detail::copyArg(_t_data), ::hilti::rt::resumable::detail::copyArg(_t_cur), ::hilti::rt::resumable::detail::copyArg(_t_context));
737
0
    auto args_on_heap = std::make_shared<decltype(args)>(std::move(args));
738
0
    auto cb = [args_on_heap = std::move(args_on_heap)](::hilti::rt::resumable::Handle* r) -> ::hilti::rt::any {
739
0
        return hlt_internal_dns_Message::DNS::Message::parse3(std::get<0>(*args_on_heap), std::get<1>(*args_on_heap), std::get<2>(*args_on_heap), std::get<3>(*args_on_heap));
740
0
    };
741
742
0
    auto r = std::make_unique<::hilti::rt::Resumable>(std::move(cb));
743
0
    r->run();
744
0
    return std::move(*r);
745
0
}
746
747
2.31M
auto hlt_internal_dns_Message::DNS::CharacterString::_t_parse_DNS__CharacterString_3_stage2(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, ::hilti::rt::stream::View _t_cur, const ::hilti::rt::Bool& _t_trim) -> ::hilti::rt::stream::View {
748
2.31M
    ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_1;
749
2.31M
    auto _t_self = CharacterString::_t_self();
750
2.31M
    ::hilti::rt::detail::checkStack();
751
2.31M
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:108:24-111:1");
752
2.31M
    ::hilti::rt::integer::safe<uint8_t> _t_v_len;
753
2.31M
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:109:10-109:14");
754
755
    // Begin parsing production: Variable: len_15 -> uint<8>;
756
2.31M
    ::spicy::rt::detail::waitForInput(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{1U}, "expecting 1 bytes for unpacking value"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:109:10-109:14"sv, ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{});
757
2.31M
    ::hilti::rt::tuple::assign(std::tie(_t_v_len, _t_cur), ::hilti::rt::integer::unpack<uint8_t>(_t_cur, ::hilti::rt::ByteOrder{::hilti::rt::ByteOrder::Network}).valueOrThrow());
758
2.31M
    if ( _t_trim ) {
759
0
        (*_t_data).trim(_t_cur.begin());
760
0
    }
761
762
    // End parsing production: Variable: len_15 -> uint<8>;
763
764
2.31M
    (*_t_self).len.valueOrInit() = ::hilti::rt::detail::move_non_trivial(_t_v_len);
765
2.31M
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:110:11-110:15");
766
767
    // Begin parsing production: Variable: data_3 -> bytes;
768
2.31M
    ::hilti::rt::integer::safe<uint64_t> _t_size = ::hilti::rt::integer::safe<uint64_t>{((*_t_self).len.value())};
769
2.31M
    ::spicy::rt::detail::extractBytes(_t_data, _t_cur, _t_size, ::hilti::rt::Bool{false}, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:110:5-110:33"sv, (_t_lhs_1=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
770
2.31M
    _t_cur = _t_cur.advance(::hilti::rt::detail::move_non_trivial(_t_size));
771
2.31M
    if ( _t_trim ) {
772
0
        (*_t_data).trim(_t_cur.begin());
773
0
    }
774
775
    // End parsing production: Variable: data_3 -> bytes;
776
777
2.31M
    ::hilti::rt::debug::dedent("spicy"sv);
778
2.31M
    return _t_cur;
779
2.31M
}
780
781
2.31M
auto hlt_internal_dns_Message::DNS::CharacterString::_t_parse_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::View& _t_cur, const ::hilti::rt::Bool& _t_trim) -> ::hilti::rt::stream::View {
782
2.31M
    auto _t_self = CharacterString::_t_self();
783
2.31M
    ::hilti::rt::detail::checkStack();
784
2.31M
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:108:24-111:1");
785
2.31M
    ::hilti::rt::debug::indent("spicy"sv);
786
2.31M
    ::hilti::rt::stream::SafeConstIterator _t_begin_ = _t_cur.begin();
787
2.31M
    return (*_t_self)._t_parse_DNS__CharacterString_3_stage2(_t_data, _t_cur, _t_trim);
788
2.31M
}
789
790
2.94k
inline void hlt_internal_dns_Message::DNS::Header::_t_on_0x25_done() {
791
2.94k
    auto _t_self = DNS::Header::_t_self();
792
2.94k
    return hlt_internal_dns_Message::DNS::_t_hook_Header__t_on_0x25_done(_t_self);
793
2.94k
}
794
795
2.96k
auto hlt_internal_dns_Message::DNS::Header::_t_parse_DNS__Header_2_stage2(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, ::hilti::rt::stream::View _t_cur, const ::hilti::rt::Bool& _t_trim, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
796
2.96k
    ::hilti::rt::Result<::hilti::rt::Tuple<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::stream::View>> _t_x_1;
797
2.96k
    auto _t_self = Header::_t_self();
798
2.96k
    ::hilti::rt::detail::checkStack();
799
2.96k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:24:15-57:1");
800
2.96k
    ::hilti::rt::integer::safe<uint16_t> _t_v_id;
801
2.96k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:25:13-25:18");
802
803
    // Begin parsing production: Variable: id_2 -> uint<16>;
804
2.96k
    ::spicy::rt::detail::waitForInput(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{2U}, "expecting 2 bytes for unpacking value"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:25:13-25:18"sv, ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{});
805
2.96k
    ::hilti::rt::tuple::assign(std::tie(_t_v_id, _t_cur), ::hilti::rt::integer::unpack<uint16_t>(_t_cur, ::hilti::rt::ByteOrder{::hilti::rt::ByteOrder::Network}).valueOrThrow());
806
2.96k
    if ( _t_trim ) {
807
0
        (*_t_data).trim(_t_cur.begin());
808
0
    }
809
810
    // End parsing production: Variable: id_2 -> uint<16>;
811
812
2.96k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:26:13-37:9");
813
814
    // Begin parsing production: Variable: flags_2 -> bitfield(16) { qr: 0; opcode: 1..4; aa: 5; tc: 6; rd: 7; ra: 8; z: 9..11; ad: 10; cd: 11; rcode: 12..15; } &bit-order=spicy::BitOrder::MSB0;
815
2.96k
    ::spicy::rt::detail::waitForInput(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{2U}, "expecting 2 bytes for unpacking value"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:26:13-37:9"sv, ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{});
816
2.96k
    ::hilti::rt::tuple::assign(std::tie((*_t_self).flags.valueOrInit(), _t_cur), (_t_x_1 = ::hilti::rt::integer::unpack<uint16_t>(_t_cur, ::hilti::rt::ByteOrder{::hilti::rt::ByteOrder::Network}), ::hilti::rt::make_result(::hilti::rt::tuple::make(::hilti::rt::make_bitfield(&type_info::_t_ti_bitfieldx2a16x2b_x73_qr__0x3e_opcode__1__4x3e_aa__5x3e_tc__6x3e_rd__7x3e_ra__8x3e_z__9__11x3e_ad__10x3e_cd__11x3e_rcode__12__15x3e_x75_x28bit_orderx31spicy__BitOrder__MSB0_bitfieldx2a16_qr_0_0_opcode_1_4_aa_5_5_tc_6_6_rd_7_7_ra_8_8_z_9_11_ad_10_10_cd_11_11_rcode_12_15_x2b, ::hilti::rt::integer::bits(::hilti::rt::tuple::get<0>(*_t_x_1), 0, 0, ::hilti::rt::integer::BitOrder{::hilti::rt::integer::BitOrder::MSB0}), ::hilti::rt::integer::bits(::hilti::rt::tuple::get<0>(*_t_x_1), 1, 4, ::hilti::rt::integer::BitOrder{::hilti::rt::integer::BitOrder::MSB0}), ::hilti::rt::integer::bits(::hilti::rt::tuple::get<0>(*_t_x_1), 5, 5, ::hilti::rt::integer::BitOrder{::hilti::rt::integer::BitOrder::MSB0}), ::hilti::rt::integer::bits(::hilti::rt::tuple::get<0>(*_t_x_1), 6, 6, ::hilti::rt::integer::BitOrder{::hilti::rt::integer::BitOrder::MSB0}), ::hilti::rt::integer::bits(::hilti::rt::tuple::get<0>(*_t_x_1), 7, 7, ::hilti::rt::integer::BitOrder{::hilti::rt::integer::BitOrder::MSB0}), ::hilti::rt::integer::bits(::hilti::rt::tuple::get<0>(*_t_x_1), 8, 8, ::hilti::rt::integer::BitOrder{::hilti::rt::integer::BitOrder::MSB0}), ::hilti::rt::integer::bits(::hilti::rt::tuple::get<0>(*_t_x_1), 9, 11, ::hilti::rt::integer::BitOrder{::hilti::rt::integer::BitOrder::MSB0}), ::hilti::rt::integer::bits(::hilti::rt::tuple::get<0>(*_t_x_1), 10, 10, ::hilti::rt::integer::BitOrder{::hilti::rt::integer::BitOrder::MSB0}), ::hilti::rt::integer::bits(::hilti::rt::tuple::get<0>(*_t_x_1), 11, 11, ::hilti::rt::integer::BitOrder{::hilti::rt::integer::BitOrder::MSB0}), ::hilti::rt::integer::bits(::hilti::rt::tuple::get<0>(*_t_x_1), 12, 15, ::hilti::rt::integer::BitOrder{::hilti::rt::integer::BitOrder::MSB0}), ::hilti::rt::integer::noop(::hilti::rt::tuple::get<0>(*_t_x_1))), ::hilti::rt::tuple::get<1>(*_t_x_1)))).valueOrThrow());
817
2.96k
    if ( _t_trim ) {
818
0
        (*_t_data).trim(_t_cur.begin());
819
0
    }
820
821
    // End parsing production: Variable: flags_2 -> bitfield(16) { qr: 0; opcode: 1..4; aa: 5; tc: 6; rd: 7; ra: 8; z: 9..11; ad: 10; cd: 11; rcode: 12..15; } &bit-order=spicy::BitOrder::MSB0;
822
823
2.96k
    ::hilti::rt::integer::safe<uint16_t> _t_v_qdcount;
824
2.96k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:39:14-39:19");
825
826
    // Begin parsing production: Variable: qdcount_2 -> uint<16>;
827
2.96k
    ::spicy::rt::detail::waitForInput(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{2U}, "expecting 2 bytes for unpacking value"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:39:14-39:19"sv, ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{});
828
2.96k
    ::hilti::rt::tuple::assign(std::tie(_t_v_qdcount, _t_cur), ::hilti::rt::integer::unpack<uint16_t>(_t_cur, ::hilti::rt::ByteOrder{::hilti::rt::ByteOrder::Network}).valueOrThrow());
829
2.96k
    if ( _t_trim ) {
830
0
        (*_t_data).trim(_t_cur.begin());
831
0
    }
832
833
    // End parsing production: Variable: qdcount_2 -> uint<16>;
834
835
2.96k
    (*_t_self).qdcount.valueOrInit() = ::hilti::rt::detail::move_non_trivial(_t_v_qdcount);
836
2.96k
    ::hilti::rt::integer::safe<uint16_t> _t_v_ancount;
837
2.96k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:40:14-40:19");
838
839
    // Begin parsing production: Variable: ancount_2 -> uint<16>;
840
2.96k
    ::spicy::rt::detail::waitForInput(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{2U}, "expecting 2 bytes for unpacking value"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:40:14-40:19"sv, ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{});
841
2.96k
    ::hilti::rt::tuple::assign(std::tie(_t_v_ancount, _t_cur), ::hilti::rt::integer::unpack<uint16_t>(_t_cur, ::hilti::rt::ByteOrder{::hilti::rt::ByteOrder::Network}).valueOrThrow());
842
2.96k
    if ( _t_trim ) {
843
0
        (*_t_data).trim(_t_cur.begin());
844
0
    }
845
846
    // End parsing production: Variable: ancount_2 -> uint<16>;
847
848
2.96k
    (*_t_self).ancount.valueOrInit() = ::hilti::rt::detail::move_non_trivial(_t_v_ancount);
849
2.96k
    ::hilti::rt::integer::safe<uint16_t> _t_v_nscount;
850
2.96k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:41:14-41:19");
851
852
    // Begin parsing production: Variable: nscount_2 -> uint<16>;
853
2.96k
    ::spicy::rt::detail::waitForInput(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{2U}, "expecting 2 bytes for unpacking value"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:41:14-41:19"sv, ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{});
854
2.96k
    ::hilti::rt::tuple::assign(std::tie(_t_v_nscount, _t_cur), ::hilti::rt::integer::unpack<uint16_t>(_t_cur, ::hilti::rt::ByteOrder{::hilti::rt::ByteOrder::Network}).valueOrThrow());
855
2.96k
    if ( _t_trim ) {
856
0
        (*_t_data).trim(_t_cur.begin());
857
0
    }
858
859
    // End parsing production: Variable: nscount_2 -> uint<16>;
860
861
2.96k
    (*_t_self).nscount.valueOrInit() = ::hilti::rt::detail::move_non_trivial(_t_v_nscount);
862
2.96k
    ::hilti::rt::integer::safe<uint16_t> _t_v_arcount;
863
2.96k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:42:14-42:19");
864
865
    // Begin parsing production: Variable: arcount_2 -> uint<16>;
866
2.96k
    ::spicy::rt::detail::waitForInput(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{2U}, "expecting 2 bytes for unpacking value"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:42:14-42:19"sv, ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{});
867
2.96k
    ::hilti::rt::tuple::assign(std::tie(_t_v_arcount, _t_cur), ::hilti::rt::integer::unpack<uint16_t>(_t_cur, ::hilti::rt::ByteOrder{::hilti::rt::ByteOrder::Network}).valueOrThrow());
868
2.96k
    if ( _t_trim ) {
869
0
        (*_t_data).trim(_t_cur.begin());
870
0
    }
871
872
    // End parsing production: Variable: arcount_2 -> uint<16>;
873
874
2.96k
    (*_t_self).arcount.valueOrInit() = ::hilti::rt::detail::move_non_trivial(_t_v_arcount);
875
2.96k
    (*_t_self)._t_error = _t_error;
876
2.96k
      ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:24:15-57:1");
877
2.96k
    (*_t_self)._t_on_0x25_done();
878
2.96k
    _t_error = (*_t_self)._t_error;
879
2.96k
    ::hilti::rt::debug::dedent("spicy"sv);
880
2.96k
    return ::hilti::rt::tuple::make_from_optionals(::hilti::rt::optional::make(_t_cur), ::hilti::rt::optional::make(_t_error));
881
2.96k
}
882
883
2.96k
auto hlt_internal_dns_Message::DNS::Header::_t_parse_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::View& _t_cur, const ::hilti::rt::Bool& _t_trim, const ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>& _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
884
2.96k
    auto _t_self = Header::_t_self();
885
2.96k
    ::hilti::rt::detail::checkStack();
886
2.96k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:24:15-57:1");
887
2.96k
    ::hilti::rt::debug::indent("spicy"sv);
888
2.96k
    ::hilti::rt::stream::SafeConstIterator _t_begin_ = _t_cur.begin();
889
2.96k
    return (*_t_self)._t_parse_DNS__Header_2_stage2(_t_data, _t_cur, _t_trim, _t_error);
890
2.96k
}
891
892
2.91M
inline void hlt_internal_dns_Message::DNS::Label::_t_on_label() {
893
2.91M
    auto _t_self = DNS::Label::_t_self();
894
2.91M
    return hlt_internal_dns_Message::DNS::_t_hook_Label__t_on_label(_t_self);
895
2.91M
}
896
897
23.6k
inline void hlt_internal_dns_Message::DNS::Label::_t_on_ptr() {
898
23.6k
    auto _t_self = DNS::Label::_t_self();
899
23.6k
    return hlt_internal_dns_Message::DNS::_t_hook_Label__t_on_ptr(_t_self);
900
23.6k
}
901
902
2.95M
auto hlt_internal_dns_Message::DNS::Label::_t_parse_DNS__Label_9_stage2(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::SafeConstIterator& _t_begin, ::hilti::rt::stream::View _t_cur, ::hilti::rt::Bool _t_trim, const ::hilti::rt::integer::safe<int64_t>& _t_lah, const ::hilti::rt::stream::SafeConstIterator& _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
903
2.95M
    ::hilti::rt::Result<::hilti::rt::Tuple<::hilti::rt::integer::safe<uint8_t>, ::hilti::rt::stream::View>> _t_x_2;
904
2.95M
    auto _t_self = Label::_t_self();
905
2.95M
    ::hilti::rt::detail::checkStack();
906
2.95M
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:127:14-150:1");
907
2.95M
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:128:10-131:9");
908
909
    // Begin parsing production: Variable: len_20 -> bitfield(8) { offset: 0..5; compressed: 6..7; };
910
2.95M
    ::spicy::rt::detail::waitForInput(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{1U}, "expecting 1 bytes for unpacking value"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:128:10-131:9"sv, ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{});
911
2.95M
    ::hilti::rt::tuple::assign(std::tie((*_t_self).len.valueOrInit(), _t_cur), (_t_x_2 = ::hilti::rt::integer::unpack<uint8_t>(_t_cur, ::hilti::rt::ByteOrder{::hilti::rt::ByteOrder::Network}), ::hilti::rt::make_result(::hilti::rt::tuple::make(::hilti::rt::make_bitfield(&type_info::_t_ti_bitfieldx2a8x2b_x73_offset__0__5x3e_compressed__6__7x3e_x75_bitfieldx2a8_offset_0_5_compressed_6_7_x2b, ::hilti::rt::integer::bits(::hilti::rt::tuple::get<0>(*_t_x_2), 0, 5, ::hilti::rt::integer::BitOrder{::hilti::rt::integer::BitOrder::LSB0}), ::hilti::rt::integer::bits(::hilti::rt::tuple::get<0>(*_t_x_2), 6, 7, ::hilti::rt::integer::BitOrder{::hilti::rt::integer::BitOrder::LSB0}), ::hilti::rt::integer::noop(::hilti::rt::tuple::get<0>(*_t_x_2))), ::hilti::rt::tuple::get<1>(*_t_x_2)))).valueOrThrow());
912
2.95M
    if ( _t_trim ) {
913
0
        (*_t_data).trim(_t_cur.begin());
914
0
    }
915
916
    // End parsing production: Variable: len_20 -> bitfield(8) { offset: 0..5; compressed: 6..7; };
917
918
2.95M
    (*_t_self)._t_error = _t_error;
919
2.95M
    (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
920
2.95M
    if ( (*_t_self)._t_position_update.hasValue() ) {
921
0
        _t_cur = _t_cur.advance((*_t_self)._t_position_update.value());
922
0
        (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
923
0
    }
924
925
2.95M
    _t_error = (*_t_self)._t_error;
926
2.95M
    (*_t_self)._t_begin = _t_begin;
927
2.95M
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:133:5-149:6");
928
929
    // Begin parsing production: Switch: switch_11 -> [0] -> switch_11_case_1 | [3] -> switch_11_case_2;
930
2.95M
    ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_error), (*_t_self)._t_parse_switch_11_stage1(_t_data, _t_begin, _t_cur, _t_trim, _t_error));
931
    // End parsing production: Switch: switch_11 -> [0] -> switch_11_case_1 | [3] -> switch_11_case_2;
932
933
2.95M
    (*_t_self)._t_begin = _t_begin;
934
2.95M
    (*_t_self)._t_begin = _t_begin;
935
2.95M
    (*_t_self)._t_error = _t_error;
936
2.95M
    (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
937
2.95M
    if ( (*_t_self)._t_position_update.hasValue() ) {
938
0
        _t_cur = _t_cur.advance((*_t_self)._t_position_update.value());
939
0
        (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
940
0
    }
941
942
2.95M
    _t_error = (*_t_self)._t_error;
943
2.95M
    ::hilti::rt::debug::dedent("spicy"sv);
944
2.95M
    return ::hilti::rt::tuple::make_from_optionals(::hilti::rt::optional::make(_t_cur), ::hilti::rt::optional::make(_t_lah), ::hilti::rt::optional::make(_t_lahe), ::hilti::rt::optional::make(_t_error));
945
2.95M
}
946
947
2.95M
auto hlt_internal_dns_Message::DNS::Label::_t_parse_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::SafeConstIterator& _t_begin, ::hilti::rt::stream::View _t_cur, const ::hilti::rt::integer::safe<int64_t>& _t_lah, const ::hilti::rt::stream::SafeConstIterator& _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
948
2.95M
    auto _t_self = Label::_t_self();
949
2.95M
    ::hilti::rt::detail::checkStack();
950
2.95M
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:127:14-150:1");
951
2.95M
    ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> _t_result;
952
2.95M
    try {
953
2.95M
        ::hilti::rt::debug::indent("spicy"sv);
954
2.95M
        ::hilti::rt::stream::SafeConstIterator _t_begin = _t_cur.begin();
955
2.95M
        (*_t_self)._t_begin = _t_begin;
956
2.95M
        (*_t_self)._t_error = _t_error;
957
2.95M
        (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
958
2.95M
        if ( (*_t_self)._t_position_update.hasValue() ) {
959
0
            _t_cur = _t_cur.advance((*_t_self)._t_position_update.value());
960
0
            (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
961
0
        }
962
963
2.95M
        _t_error = (*_t_self)._t_error;
964
2.95M
        _t_result = (*_t_self)._t_parse_DNS__Label_9_stage2(_t_data, _t_begin, _t_cur, ::hilti::rt::Bool{false}, _t_lah, _t_lahe, _t_error);
965
2.95M
    }
966
2.95M
    catch ( const ::std::exception& _t_except ) {
967
13.1k
        (*_t_self)._t_begin = _t_begin;
968
13.1k
        (*_t_self)._t_error = _t_error;
969
13.1k
        (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
970
13.1k
        if ( (*_t_self)._t_position_update.hasValue() ) {
971
0
            _t_cur = _t_cur.advance((*_t_self)._t_position_update.value());
972
0
            (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
973
0
        }
974
975
13.1k
        _t_error = (*_t_self)._t_error;
976
13.1k
        throw;
977
13.1k
    }
978
979
2.93M
    (*_t_self)._t_error = _t_error;
980
2.93M
    (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
981
2.93M
    if ( (*_t_self)._t_position_update.hasValue() ) {
982
0
        _t_cur = _t_cur.advance((*_t_self)._t_position_update.value());
983
0
        (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
984
0
    }
985
986
2.93M
    return _t_result;
987
2.95M
}
988
989
2.95M
auto hlt_internal_dns_Message::DNS::Label::_t_parse_switch_11_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::SafeConstIterator& _t_begin, ::hilti::rt::stream::View _t_cur, const ::hilti::rt::Bool& _t_trim, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
990
2.95M
    auto _t_self = Label::_t_self();
991
2.95M
    ::hilti::rt::detail::checkStack();
992
2.95M
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:133:5-149:6");
993
2.95M
    ::hilti::rt::debug::indent("spicy"sv);
994
2.95M
      ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:133:5-149:6");
995
2.95M
    switch ( auto _t_x = (::hilti::rt::tuple::get<1>((*_t_self).len.value().value)); (_t_x).Ref() ) {
996
2.91M
        case ::hilti::rt::integer::safe<std::uint8_t>{0U}: {
997
2.91M
            ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_2;
998
2.91M
              ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:134:9-140:21");
999
2.91M
            ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:134:9-140:21");
1000
1001
            // Begin parsing production: Block: switch_11_case_1 -> label_9;
1002
2.91M
            ::hilti::rt::debug::indent("spicy"sv);
1003
2.91M
            ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:134:24-134:28");
1004
1005
            // Begin parsing production: Variable: label_9 -> bytes;
1006
2.91M
            ::hilti::rt::integer::safe<uint64_t> _t_size = ::hilti::rt::integer::safe<uint64_t>{(::hilti::rt::tuple::get<0>((*_t_self).len.value().value))};
1007
2.91M
            (*_t_self).label.valueOrInit() = ::spicy::rt::detail::extractBytes(_t_data, _t_cur, _t_size, ::hilti::rt::Bool{false}, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:134:17-140:21"sv, (_t_lhs_2=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
1008
2.91M
            _t_cur = _t_cur.advance(::hilti::rt::detail::move_non_trivial(_t_size));
1009
2.91M
            if ( _t_trim ) {
1010
0
                (*_t_data).trim(_t_cur.begin());
1011
0
            }
1012
1013
            // End parsing production: Variable: label_9 -> bytes;
1014
1015
2.91M
            (*_t_self)._t_error = _t_error;
1016
2.91M
            (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1017
2.91M
              ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:134:17-140:21");
1018
2.91M
            (*_t_self)._t_on_label();
1019
2.91M
              ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:134:9-140:21");
1020
2.91M
            if ( (*_t_self)._t_position_update.hasValue() ) {
1021
0
                _t_cur = _t_cur.advance((*_t_self)._t_position_update.value());
1022
0
                (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1023
0
            }
1024
1025
2.91M
            _t_error = (*_t_self)._t_error;
1026
2.91M
            (*_t_self)._t_begin = _t_begin;
1027
2.91M
            ::hilti::rt::debug::dedent("spicy"sv);
1028
            // End parsing production: Block: switch_11_case_1 -> label_9;
1029
1030
2.91M
            (*_t_self)._t_begin = _t_begin;
1031
2.91M
            break;
1032
0
        }
1033
36.9k
        case ::hilti::rt::integer::safe<std::uint8_t>{3U}: {
1034
36.9k
              ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:142:9-148:21");
1035
36.9k
            ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:142:9-148:21");
1036
1037
            // Begin parsing production: Block: switch_11_case_2 -> Resolved_45;
1038
36.9k
            ::hilti::rt::debug::indent("spicy"sv);
1039
36.9k
            ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:119:16-125:5");
1040
36.9k
            ::hilti::rt::stream::SafeConstIterator _t_parse_at = (*_t_self)._t_begin;
1041
36.9k
            ::hilti::rt::integer::safe<int64_t> _t_parse_lah = ::hilti::rt::integer::safe<std::int64_t>{0};
1042
36.9k
            ::hilti::rt::stream::SafeConstIterator _t_parse_begin = _t_parse_at;
1043
36.9k
            ::hilti::rt::stream::View _t_parse_cur = _t_cur.advance(_t_parse_at);
1044
1045
            // Begin parsing production: Unit: DNS__Pointer_9 -> len_21 Resolved_46 (field 'ptr', id n/a, parser, args: (msg, self));
1046
36.9k
            (*_t_self).ptr.valueOrInit() = (hlt_internal_dns_Message::DNS::Pointer{::hilti::rt::struct_::tag::Parameters(), _t_self->_t_p_msg.derefAsValue(), _t_self});
1047
36.9k
            ::hilti::rt::tuple::assign(std::tie(_t_parse_cur, _t_parse_lah, _t_error), (*(*_t_self).ptr.value())._t_parse_stage1(_t_data, _t_parse_cur, ::hilti::rt::Bool{false}, ::hilti::rt::detail::move_non_trivial(_t_parse_lah), _t_error));
1048
            // End parsing production: Unit: DNS__Pointer_9 -> len_21 Resolved_46 (field 'ptr', id n/a, parser, args: (msg, self));
1049
1050
36.9k
            (*_t_self)._t_begin = _t_begin;
1051
36.9k
            (*_t_self)._t_error = _t_error;
1052
36.9k
            (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1053
36.9k
              ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:142:17-148:21");
1054
36.9k
            (*_t_self)._t_on_ptr();
1055
36.9k
              ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:142:9-148:21");
1056
36.9k
            if ( (*_t_self)._t_position_update.hasValue() ) {
1057
23.6k
                _t_cur = _t_cur.advance((*_t_self)._t_position_update.value());
1058
23.6k
                (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1059
23.6k
            }
1060
1061
36.9k
            _t_error = (*_t_self)._t_error;
1062
36.9k
            (*_t_self)._t_begin = _t_begin;
1063
36.9k
            ::hilti::rt::debug::dedent("spicy"sv);
1064
            // End parsing production: Block: switch_11_case_2 -> Resolved_45;
1065
1066
36.9k
            (*_t_self)._t_begin = _t_begin;
1067
36.9k
            break;
1068
0
        }
1069
125
        default: {
1070
125
              ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:133:5-149:6");
1071
125
            throw ::spicy::rt::ParseError{::hilti::rt::fmt("no matching case in switch statement for value '%s'"sv, (::hilti::rt::tuple::get<1>((*_t_self).len.value().value))), "/src/spicy/spicy-dns/analyzer/analyzer.spicy:133:5-149:6"};
1072
0
        }
1073
2.95M
    }
1074
2.93M
    ::hilti::rt::debug::dedent("spicy"sv);
1075
2.93M
    return ::hilti::rt::tuple::make_from_optionals(::hilti::rt::optional::make(_t_cur), ::hilti::rt::optional::make(_t_error));
1076
2.95M
}
1077
1078
2.96k
auto hlt_internal_dns_Message::DNS::Message::_t_parse_DNS__Message_stage2(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::SafeConstIterator& _t_begin, ::hilti::rt::stream::View _t_cur, ::hilti::rt::Bool _t_trim, ::hilti::rt::integer::safe<int64_t> _t_lah, ::hilti::rt::stream::SafeConstIterator _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
1079
2.96k
    auto _t_self = Message::_t_self();
1080
2.96k
    ::hilti::rt::detail::checkStack();
1081
2.96k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:16:23-22:1");
1082
2.96k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:24:15-57:1");
1083
1084
    // Begin parsing production: Unit: DNS__Header -> id flags qdcount ancount nscount arcount;
1085
2.96k
    (*_t_self).header.valueOrInit() = (hlt_internal_dns_Message::DNS::Header{});
1086
2.96k
    ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_error), (*_t_self).header.value()._t_parse_stage1(_t_data, _t_cur, _t_trim, _t_error));
1087
    // End parsing production: Unit: DNS__Header -> id flags qdcount ancount nscount arcount;
1088
1089
2.96k
    (*_t_self)._t_error = _t_error;
1090
2.96k
    (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1091
2.96k
    if ( (*_t_self)._t_position_update.hasValue() ) {
1092
0
        _t_cur = _t_cur.advance((*_t_self)._t_position_update.value());
1093
0
        (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1094
0
    }
1095
1096
2.96k
    _t_error = (*_t_self)._t_error;
1097
2.96k
    (*_t_self)._t_begin = _t_begin;
1098
2.96k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:18:5-18:54");
1099
1100
    // Begin parsing production: Counter: question -> counter(self.header.qdcount): Resolved_3;
1101
2.96k
    ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*_t_self)._t_parse_question_stage1(_t_data, _t_begin, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error, (*_t_self).question.valueOrInit()));
1102
    // End parsing production: Counter: question -> counter(self.header.qdcount): Resolved_3;
1103
1104
2.96k
    (*_t_self)._t_error = _t_error;
1105
2.96k
    (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1106
2.96k
    if ( (*_t_self)._t_position_update.hasValue() ) {
1107
0
        _t_cur = _t_cur.advance((*_t_self)._t_position_update.value());
1108
0
        (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1109
0
    }
1110
1111
2.96k
    _t_error = (*_t_self)._t_error;
1112
2.96k
    (*_t_self)._t_begin = _t_begin;
1113
2.96k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:19:5-19:76");
1114
1115
    // Begin parsing production: Counter: answer -> counter(self.header.ancount): Resolved_7;
1116
2.96k
    ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*_t_self)._t_parse_answer_stage1(_t_data, _t_begin, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error, (*_t_self).answer.valueOrInit()));
1117
    // End parsing production: Counter: answer -> counter(self.header.ancount): Resolved_7;
1118
1119
2.96k
    (*_t_self)._t_error = _t_error;
1120
2.96k
    (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1121
2.96k
    if ( (*_t_self)._t_position_update.hasValue() ) {
1122
0
        _t_cur = _t_cur.advance((*_t_self)._t_position_update.value());
1123
0
        (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1124
0
    }
1125
1126
2.96k
    _t_error = (*_t_self)._t_error;
1127
2.96k
    (*_t_self)._t_begin = _t_begin;
1128
2.96k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:20:5-20:74");
1129
1130
    // Begin parsing production: Counter: authority -> counter(self.header.nscount): Resolved_7;
1131
2.96k
    ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*_t_self)._t_parse_authority_stage1(_t_data, _t_begin, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error, (*_t_self).authority.valueOrInit()));
1132
    // End parsing production: Counter: authority -> counter(self.header.nscount): Resolved_7;
1133
1134
2.96k
    (*_t_self)._t_error = _t_error;
1135
2.96k
    (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1136
2.96k
    if ( (*_t_self)._t_position_update.hasValue() ) {
1137
0
        _t_cur = _t_cur.advance((*_t_self)._t_position_update.value());
1138
0
        (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1139
0
    }
1140
1141
2.96k
    _t_error = (*_t_self)._t_error;
1142
2.96k
    (*_t_self)._t_begin = _t_begin;
1143
2.96k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:21:5-21:74");
1144
1145
    // Begin parsing production: Counter: additional -> counter(self.header.arcount): Resolved_7;
1146
2.96k
    ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*_t_self)._t_parse_additional_stage1(_t_data, _t_begin, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error, (*_t_self).additional.valueOrInit()));
1147
    // End parsing production: Counter: additional -> counter(self.header.arcount): Resolved_7;
1148
1149
2.96k
    (*_t_self)._t_error = _t_error;
1150
2.96k
    (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1151
2.96k
    if ( (*_t_self)._t_position_update.hasValue() ) {
1152
0
        _t_cur = _t_cur.advance((*_t_self)._t_position_update.value());
1153
0
        (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1154
0
    }
1155
1156
2.96k
    _t_error = (*_t_self)._t_error;
1157
2.96k
    (*_t_self)._t_begin = _t_begin;
1158
2.96k
    (*_t_self)._t_begin = _t_begin;
1159
2.96k
    (*_t_self)._t_error = _t_error;
1160
2.96k
    (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1161
2.96k
    if ( (*_t_self)._t_position_update.hasValue() ) {
1162
0
        _t_cur = _t_cur.advance((*_t_self)._t_position_update.value());
1163
0
        (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1164
0
    }
1165
1166
2.96k
    _t_error = (*_t_self)._t_error;
1167
2.96k
    ::hilti::rt::debug::dedent("spicy"sv);
1168
2.96k
    return ::hilti::rt::tuple::make_from_optionals(::hilti::rt::optional::make(_t_cur), ::hilti::rt::optional::make(_t_lah), ::hilti::rt::optional::make(_t_lahe), ::hilti::rt::optional::make(_t_error));
1169
2.96k
}
1170
1171
282
auto hlt_internal_dns_Message::DNS::Message::_t_parse_additional_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::SafeConstIterator& _t_begin, ::hilti::rt::stream::View _t_cur, ::hilti::rt::Bool _t_trim, ::hilti::rt::integer::safe<int64_t> _t_lah, ::hilti::rt::stream::SafeConstIterator _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error, ::hilti::rt::Vector<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::ResourceRecord>>& _t_dst) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
1172
282
    auto _t_self = Message::_t_self();
1173
282
    ::hilti::rt::detail::checkStack();
1174
282
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:21:5-21:74");
1175
282
    ::hilti::rt::integer::safe<uint64_t> _t_repeat = ::hilti::rt::integer::safe<uint64_t>{(*_t_self).header.value().arcount.value()};
1176
282
    _t_dst.reserve((::hilti::rt::integer::safe<std::uint64_t>{128U} <= _t_repeat ? ::hilti::rt::integer::safe<std::uint64_t>{128U} : _t_repeat));
1177
159k
    for ( ::hilti::rt::integer::safe<uint64_t> _t_i = ::hilti::rt::detail::move_non_trivial(_t_repeat); ::hilti::rt::Bool{static_cast<bool>(_t_i)};  ) {
1178
159k
        _t_i--;
1179
159k
        ::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::ResourceRecord>> _t_elem;
1180
159k
        (*_t_self)._t_begin = _t_begin;
1181
159k
        ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:65:23-84:1");
1182
1183
        // Begin parsing production: Unit: DNS__ResourceRecord -> Resolved_4 ty class ttl rdlen switch_2 (field '_anon_2', id n/a, parser, args: (self, RRType::ANSWER)) (container 'answer');
1184
159k
        _t_elem = ::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::ResourceRecord>>((hlt_internal_dns_Message::DNS::ResourceRecord{::hilti::rt::struct_::tag::Parameters(), _t_self, DNS::RRType{DNS::RRType::ADDL}}));
1185
159k
        ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*_t_elem.value())._t_parse_stage1(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error));
1186
        // End parsing production: Unit: DNS__ResourceRecord -> Resolved_4 ty class ttl rdlen switch_2 (field '_anon_2', id n/a, parser, args: (self, RRType::ANSWER)) (container 'answer');
1187
1188
159k
        (*_t_self)._t_error = _t_error;
1189
159k
        (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1190
159k
        if ( (*_t_self)._t_position_update.hasValue() ) {
1191
0
            _t_cur = _t_cur.advance((*_t_self)._t_position_update.value());
1192
0
            (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1193
0
        }
1194
1195
159k
        _t_error = (*_t_self)._t_error;
1196
159k
        _t_dst.emplace_back(::hilti::rt::detail::move_non_trivial(_t_elem).value());
1197
159k
        (*_t_self)._t_begin = _t_begin;
1198
159k
    }
1199
1200
282
    return ::hilti::rt::tuple::make_from_optionals(::hilti::rt::optional::make(_t_cur), ::hilti::rt::optional::make(_t_lah), ::hilti::rt::optional::make(_t_lahe), ::hilti::rt::optional::make(_t_error));
1201
282
}
1202
1203
2.51k
auto hlt_internal_dns_Message::DNS::Message::_t_parse_answer_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::SafeConstIterator& _t_begin, ::hilti::rt::stream::View _t_cur, ::hilti::rt::Bool _t_trim, ::hilti::rt::integer::safe<int64_t> _t_lah, ::hilti::rt::stream::SafeConstIterator _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error, ::hilti::rt::Vector<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::ResourceRecord>>& _t_dst) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
1204
2.51k
    auto _t_self = Message::_t_self();
1205
2.51k
    ::hilti::rt::detail::checkStack();
1206
2.51k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:19:5-19:76");
1207
2.51k
    ::hilti::rt::integer::safe<uint64_t> _t_repeat = ::hilti::rt::integer::safe<uint64_t>{(*_t_self).header.value().ancount.value()};
1208
2.51k
    _t_dst.reserve((::hilti::rt::integer::safe<std::uint64_t>{128U} <= _t_repeat ? ::hilti::rt::integer::safe<std::uint64_t>{128U} : _t_repeat));
1209
1.05M
    for ( ::hilti::rt::integer::safe<uint64_t> _t_i = ::hilti::rt::detail::move_non_trivial(_t_repeat); ::hilti::rt::Bool{static_cast<bool>(_t_i)};  ) {
1210
1.05M
        _t_i--;
1211
1.05M
        ::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::ResourceRecord>> _t_elem;
1212
1.05M
        (*_t_self)._t_begin = _t_begin;
1213
1.05M
        ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:65:23-84:1");
1214
1215
        // Begin parsing production: Unit: DNS__ResourceRecord -> Resolved_4 ty class ttl rdlen switch_2 (field '_anon_2', id n/a, parser, args: (self, RRType::ANSWER)) (container 'answer');
1216
1.05M
        _t_elem = ::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::ResourceRecord>>((hlt_internal_dns_Message::DNS::ResourceRecord{::hilti::rt::struct_::tag::Parameters(), _t_self, DNS::RRType{DNS::RRType::ANSWER}}));
1217
1.05M
        ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*_t_elem.value())._t_parse_stage1(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error));
1218
        // End parsing production: Unit: DNS__ResourceRecord -> Resolved_4 ty class ttl rdlen switch_2 (field '_anon_2', id n/a, parser, args: (self, RRType::ANSWER)) (container 'answer');
1219
1220
1.05M
        (*_t_self)._t_error = _t_error;
1221
1.05M
        (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1222
1.05M
        if ( (*_t_self)._t_position_update.hasValue() ) {
1223
0
            _t_cur = _t_cur.advance((*_t_self)._t_position_update.value());
1224
0
            (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1225
0
        }
1226
1227
1.05M
        _t_error = (*_t_self)._t_error;
1228
1.05M
        _t_dst.emplace_back(::hilti::rt::detail::move_non_trivial(_t_elem).value());
1229
1.05M
        (*_t_self)._t_begin = _t_begin;
1230
1.05M
    }
1231
1232
2.51k
    return ::hilti::rt::tuple::make_from_optionals(::hilti::rt::optional::make(_t_cur), ::hilti::rt::optional::make(_t_lah), ::hilti::rt::optional::make(_t_lahe), ::hilti::rt::optional::make(_t_error));
1233
2.51k
}
1234
1235
1.14k
auto hlt_internal_dns_Message::DNS::Message::_t_parse_authority_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::SafeConstIterator& _t_begin, ::hilti::rt::stream::View _t_cur, ::hilti::rt::Bool _t_trim, ::hilti::rt::integer::safe<int64_t> _t_lah, ::hilti::rt::stream::SafeConstIterator _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error, ::hilti::rt::Vector<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::ResourceRecord>>& _t_dst) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
1236
1.14k
    auto _t_self = Message::_t_self();
1237
1.14k
    ::hilti::rt::detail::checkStack();
1238
1.14k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:20:5-20:74");
1239
1.14k
    ::hilti::rt::integer::safe<uint64_t> _t_repeat = ::hilti::rt::integer::safe<uint64_t>{(*_t_self).header.value().nscount.value()};
1240
1.14k
    _t_dst.reserve((::hilti::rt::integer::safe<std::uint64_t>{128U} <= _t_repeat ? ::hilti::rt::integer::safe<std::uint64_t>{128U} : _t_repeat));
1241
465k
    for ( ::hilti::rt::integer::safe<uint64_t> _t_i = ::hilti::rt::detail::move_non_trivial(_t_repeat); ::hilti::rt::Bool{static_cast<bool>(_t_i)};  ) {
1242
464k
        _t_i--;
1243
464k
        ::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::ResourceRecord>> _t_elem;
1244
464k
        (*_t_self)._t_begin = _t_begin;
1245
464k
        ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:65:23-84:1");
1246
1247
        // Begin parsing production: Unit: DNS__ResourceRecord -> Resolved_4 ty class ttl rdlen switch_2 (field '_anon_2', id n/a, parser, args: (self, RRType::ANSWER)) (container 'answer');
1248
464k
        _t_elem = ::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::ResourceRecord>>((hlt_internal_dns_Message::DNS::ResourceRecord{::hilti::rt::struct_::tag::Parameters(), _t_self, DNS::RRType{DNS::RRType::AUTH}}));
1249
464k
        ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*_t_elem.value())._t_parse_stage1(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error));
1250
        // End parsing production: Unit: DNS__ResourceRecord -> Resolved_4 ty class ttl rdlen switch_2 (field '_anon_2', id n/a, parser, args: (self, RRType::ANSWER)) (container 'answer');
1251
1252
464k
        (*_t_self)._t_error = _t_error;
1253
464k
        (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1254
464k
        if ( (*_t_self)._t_position_update.hasValue() ) {
1255
0
            _t_cur = _t_cur.advance((*_t_self)._t_position_update.value());
1256
0
            (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1257
0
        }
1258
1259
464k
        _t_error = (*_t_self)._t_error;
1260
464k
        _t_dst.emplace_back(::hilti::rt::detail::move_non_trivial(_t_elem).value());
1261
464k
        (*_t_self)._t_begin = _t_begin;
1262
464k
    }
1263
1264
1.14k
    return ::hilti::rt::tuple::make_from_optionals(::hilti::rt::optional::make(_t_cur), ::hilti::rt::optional::make(_t_lah), ::hilti::rt::optional::make(_t_lahe), ::hilti::rt::optional::make(_t_error));
1265
1.14k
}
1266
1267
2.94k
auto hlt_internal_dns_Message::DNS::Message::_t_parse_question_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::SafeConstIterator& _t_begin, ::hilti::rt::stream::View _t_cur, ::hilti::rt::Bool _t_trim, ::hilti::rt::integer::safe<int64_t> _t_lah, ::hilti::rt::stream::SafeConstIterator _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error, ::hilti::rt::Vector<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Question>>& _t_dst) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
1268
2.94k
    auto _t_self = Message::_t_self();
1269
2.94k
    ::hilti::rt::detail::checkStack();
1270
2.94k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:18:5-18:54");
1271
2.94k
    ::hilti::rt::integer::safe<uint64_t> _t_repeat = ::hilti::rt::integer::safe<uint64_t>{(*_t_self).header.value().qdcount.value()};
1272
2.94k
    _t_dst.reserve((::hilti::rt::integer::safe<std::uint64_t>{128U} <= _t_repeat ? ::hilti::rt::integer::safe<std::uint64_t>{128U} : _t_repeat));
1273
824k
    for ( ::hilti::rt::integer::safe<uint64_t> _t_i = ::hilti::rt::detail::move_non_trivial(_t_repeat); ::hilti::rt::Bool{static_cast<bool>(_t_i)};  ) {
1274
822k
        _t_i--;
1275
822k
        ::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Question>> _t_elem;
1276
822k
        (*_t_self)._t_begin = _t_begin;
1277
822k
        ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:59:17-63:1");
1278
1279
        // Begin parsing production: Unit: DNS__Question -> Resolved_4 qtype qclass (field '_anon', id n/a, parser, args: (self)) (container 'question');
1280
822k
        _t_elem = ::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Question>>((hlt_internal_dns_Message::DNS::Question{::hilti::rt::struct_::tag::Parameters(), _t_self}));
1281
822k
        ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*_t_elem.value())._t_parse_stage1(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error));
1282
        // End parsing production: Unit: DNS__Question -> Resolved_4 qtype qclass (field '_anon', id n/a, parser, args: (self)) (container 'question');
1283
1284
822k
        (*_t_self)._t_error = _t_error;
1285
822k
        (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1286
822k
        if ( (*_t_self)._t_position_update.hasValue() ) {
1287
0
            _t_cur = _t_cur.advance((*_t_self)._t_position_update.value());
1288
0
            (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1289
0
        }
1290
1291
822k
        _t_error = (*_t_self)._t_error;
1292
822k
        _t_dst.emplace_back(::hilti::rt::detail::move_non_trivial(_t_elem).value());
1293
822k
        (*_t_self)._t_begin = _t_begin;
1294
822k
    }
1295
1296
2.94k
    return ::hilti::rt::tuple::make_from_optionals(::hilti::rt::optional::make(_t_cur), ::hilti::rt::optional::make(_t_lah), ::hilti::rt::optional::make(_t_lahe), ::hilti::rt::optional::make(_t_error));
1297
2.94k
}
1298
1299
2.96k
auto hlt_internal_dns_Message::DNS::Message::_t_parse_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::SafeConstIterator& _t_begin, ::hilti::rt::stream::View _t_cur, const ::hilti::rt::integer::safe<int64_t>& _t_lah, const ::hilti::rt::stream::SafeConstIterator& _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
1300
2.96k
    auto _t_self = Message::_t_self();
1301
2.96k
    ::hilti::rt::detail::checkStack();
1302
2.96k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:16:23-22:1");
1303
2.96k
    ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> _t_result;
1304
2.96k
    try {
1305
2.96k
        ::hilti::rt::debug::indent("spicy"sv);
1306
2.96k
        ::hilti::rt::stream::SafeConstIterator _t_begin = _t_cur.begin();
1307
2.96k
        (*_t_self)._t_begin = _t_begin;
1308
2.96k
        (*_t_self)._t_error = _t_error;
1309
2.96k
        (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1310
2.96k
        if ( (*_t_self)._t_position_update.hasValue() ) {
1311
0
            _t_cur = _t_cur.advance((*_t_self)._t_position_update.value());
1312
0
            (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1313
0
        }
1314
1315
2.96k
        _t_error = (*_t_self)._t_error;
1316
2.96k
        _t_result = (*_t_self)._t_parse_DNS__Message_stage2(_t_data, _t_begin, _t_cur, ::hilti::rt::Bool{false}, _t_lah, _t_lahe, _t_error);
1317
2.96k
    }
1318
2.96k
    catch ( const ::std::exception& _t_except ) {
1319
1.28k
        (*_t_self)._t_begin = _t_begin;
1320
1.28k
        (*_t_self)._t_error = _t_error;
1321
1.28k
        (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1322
1.28k
        if ( (*_t_self)._t_position_update.hasValue() ) {
1323
0
            _t_cur = _t_cur.advance((*_t_self)._t_position_update.value());
1324
0
            (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1325
0
        }
1326
1327
1.28k
        _t_error = (*_t_self)._t_error;
1328
1.28k
        throw;
1329
1.28k
    }
1330
1331
17
    (*_t_self)._t_error = _t_error;
1332
17
    (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1333
17
    if ( (*_t_self)._t_position_update.hasValue() ) {
1334
0
        _t_cur = _t_cur.advance((*_t_self)._t_position_update.value());
1335
0
        (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>{};
1336
0
    }
1337
1338
17
    return _t_result;
1339
2.96k
}
1340
1341
2.96k
auto hlt_internal_dns_Message::DNS::Message::parse1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::Optional<::hilti::rt::stream::View>& _t_cur, const ::hilti::rt::Optional<::spicy::rt::UnitContext>& _t_context) -> ::hilti::rt::stream::View {
1342
2.96k
    ::hilti::rt::detail::checkStack();
1343
2.96k
      ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:16:23-22:1");
1344
2.96k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:16:23-22:1");
1345
2.96k
    ::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Message> _t_unit = ::hilti::rt::reference::make_value<hlt_internal_dns_Message::DNS::Message>((hlt_internal_dns_Message::DNS::Message{}));
1346
2.96k
    ::hilti::rt::stream::View _t_ncur = (_t_cur ? _t_cur.value() : (*_t_data).view());
1347
2.96k
    ::hilti::rt::integer::safe<int64_t> _t_lahead = ::hilti::rt::integer::safe<std::int64_t>{0};
1348
2.96k
    ::hilti::rt::stream::SafeConstIterator _t_lahead_end;
1349
2.96k
    ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error = ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>{};
1350
2.96k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:16:23-22:1");
1351
1352
    // Begin parsing production: Unit: DNS__Message -> Resolved_2 question answer authority additional;
1353
2.96k
    ::hilti::rt::tuple::assign(std::tie(_t_ncur, _t_lahead, _t_lahead_end, _t_error), (*::hilti::rt::detail::move_non_trivial(_t_unit))._t_parse_stage1(_t_data, _t_ncur.begin(), _t_ncur, ::hilti::rt::detail::move_non_trivial(_t_lahead), _t_lahead_end, _t_error));
1354
    // End parsing production: Unit: DNS__Message -> Resolved_2 question answer authority additional;
1355
1356
2.96k
    if ( _t_error.hasValue() ) {
1357
0
        throw ::spicy::rt::ParseError{::hilti::rt::fmt("successful synchronization never confirmed: %s"sv, ::hilti::rt::exception::what(_t_error.value())), ::hilti::rt::exception::where(_t_error.value())};
1358
0
    }
1359
1360
2.96k
    return _t_ncur;
1361
2.96k
}
1362
1363
0
auto hlt_internal_dns_Message::DNS::Message::parse2(::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Message>& _t_unit, ::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::Optional<::hilti::rt::stream::View>& _t_cur, const ::hilti::rt::Optional<::spicy::rt::UnitContext>& _t_context) -> ::hilti::rt::stream::View {
1364
0
    ::hilti::rt::detail::checkStack();
1365
0
      ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:16:23-22:1");
1366
0
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:16:23-22:1");
1367
0
    ::hilti::rt::stream::View _t_ncur = (_t_cur ? _t_cur.value() : (*_t_data).view());
1368
0
    ::hilti::rt::integer::safe<int64_t> _t_lahead = ::hilti::rt::integer::safe<std::int64_t>{0};
1369
0
    ::hilti::rt::stream::SafeConstIterator _t_lahead_end;
1370
0
    ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error = ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>{};
1371
0
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:16:23-22:1");
1372
1373
    // Begin parsing production: Unit: DNS__Message -> Resolved_2 question answer authority additional;
1374
0
    ::hilti::rt::tuple::assign(std::tie(_t_ncur, _t_lahead, _t_lahead_end, _t_error), (*_t_unit)._t_parse_stage1(_t_data, _t_ncur.begin(), _t_ncur, ::hilti::rt::detail::move_non_trivial(_t_lahead), _t_lahead_end, _t_error));
1375
    // End parsing production: Unit: DNS__Message -> Resolved_2 question answer authority additional;
1376
1377
0
    (*_t_unit)._t_begin = _t_ncur.begin();
1378
0
    if ( _t_error.hasValue() ) {
1379
0
        throw ::spicy::rt::ParseError{::hilti::rt::fmt("successful synchronization never confirmed: %s"sv, ::hilti::rt::exception::what(_t_error.value())), ::hilti::rt::exception::where(_t_error.value())};
1380
0
    }
1381
1382
0
    return _t_ncur;
1383
0
}
1384
1385
0
auto hlt_internal_dns_Message::DNS::Message::parse3(::hilti::rt::ValueReference<::spicy::rt::ParsedUnit>& _t_gunit, ::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::Optional<::hilti::rt::stream::View>& _t_cur, const ::hilti::rt::Optional<::spicy::rt::UnitContext>& _t_context) -> ::hilti::rt::stream::View {
1386
0
    ::hilti::rt::detail::checkStack();
1387
0
      ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:16:23-22:1");
1388
0
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:16:23-22:1");
1389
0
    ::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Message> _t_unit = ::hilti::rt::reference::make_value<hlt_internal_dns_Message::DNS::Message>((hlt_internal_dns_Message::DNS::Message{}));
1390
0
    ::spicy::rt::ParsedUnit::initialize((*_t_gunit), _t_unit, &type_info::_t_ti_value_ref_DNS__Message__value_refx2anamex2aDNS__Messagex2bx2b);
1391
0
    ::hilti::rt::stream::View _t_ncur = (_t_cur ? _t_cur.value() : (*_t_data).view());
1392
0
    ::hilti::rt::integer::safe<int64_t> _t_lahead = ::hilti::rt::integer::safe<std::int64_t>{0};
1393
0
    ::hilti::rt::stream::SafeConstIterator _t_lahead_end;
1394
0
    ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error = ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>{};
1395
0
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:16:23-22:1");
1396
1397
    // Begin parsing production: Unit: DNS__Message -> Resolved_2 question answer authority additional;
1398
0
    ::hilti::rt::tuple::assign(std::tie(_t_ncur, _t_lahead, _t_lahead_end, _t_error), (*::hilti::rt::detail::move_non_trivial(_t_unit))._t_parse_stage1(_t_data, _t_ncur.begin(), _t_ncur, ::hilti::rt::detail::move_non_trivial(_t_lahead), _t_lahead_end, _t_error));
1399
    // End parsing production: Unit: DNS__Message -> Resolved_2 question answer authority additional;
1400
1401
0
    if ( _t_error.hasValue() ) {
1402
0
        throw ::spicy::rt::ParseError{::hilti::rt::fmt("successful synchronization never confirmed: %s"sv, ::hilti::rt::exception::what(_t_error.value())), ::hilti::rt::exception::where(_t_error.value())};
1403
0
    }
1404
1405
0
    return _t_ncur;
1406
0
}
1407
1408
2.56M
auto hlt_internal_dns_Message::DNS::Name::_t_parse_DNS__Name_7_stage2(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::SafeConstIterator& _t_begin, ::hilti::rt::stream::View _t_cur, ::hilti::rt::integer::safe<int64_t> _t_lah, ::hilti::rt::stream::SafeConstIterator _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
1409
2.56M
    auto _t_self = Name::_t_self();
1410
2.56M
    ::hilti::rt::detail::checkStack();
1411
2.56M
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:113:13-117:1");
1412
2.56M
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:114:5-114:81");
1413
1414
    // Begin parsing production: ForEach: _anon_7_7 -> foreach: Resolved_39;
1415
2.56M
    ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*_t_self)._t_parse__anon_7_7_stage1(_t_data, _t_begin, _t_cur, _t_lah, _t_lahe, _t_error));
1416
    // End parsing production: ForEach: _anon_7_7 -> foreach: Resolved_39;
1417
1418
2.56M
    ::hilti::rt::debug::dedent("spicy"sv);
1419
2.56M
    return ::hilti::rt::tuple::make_from_optionals(::hilti::rt::optional::make(_t_cur), ::hilti::rt::optional::make(_t_lah), ::hilti::rt::optional::make(_t_lahe), ::hilti::rt::optional::make(_t_error));
1420
2.56M
}
1421
1422
2.56M
auto hlt_internal_dns_Message::DNS::Name::_t_parse__anon_7_7_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::SafeConstIterator& _t_begin, ::hilti::rt::stream::View _t_cur, ::hilti::rt::integer::safe<int64_t> _t_lah, ::hilti::rt::stream::SafeConstIterator _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
1423
2.56M
    ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_3;
1424
2.56M
    auto _t_self = Name::_t_self();
1425
2.56M
    ::hilti::rt::detail::checkStack();
1426
2.56M
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:114:5-114:81");
1427
2.98M
    while ( ! (::spicy::rt::detail::atEod(_t_data, _t_cur, (_t_lhs_3=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})))) ) {
1428
2.95M
        ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_4;
1429
2.95M
        ::hilti::rt::stream::SafeConstIterator _t_old_begin = _t_cur.begin();
1430
2.95M
        ::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Label>> _t_elem;
1431
2.95M
        ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:127:14-150:1");
1432
1433
        // Begin parsing production: Unit: DNS__Label_7 -> len_16 switch_9 (field '_anon_6', id n/a, parser, args: (msg, self)) (container '_anon_7');
1434
2.95M
        _t_elem = ::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Label>>((hlt_internal_dns_Message::DNS::Label{::hilti::rt::struct_::tag::Parameters(), _t_self->_t_p_msg.derefAsValue(), _t_self}));
1435
2.95M
        ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*_t_elem.value())._t_parse_stage1(_t_data, _t_begin, _t_cur, _t_lah, _t_lahe, _t_error));
1436
        // End parsing production: Unit: DNS__Label_7 -> len_16 switch_9 (field '_anon_6', id n/a, parser, args: (msg, self)) (container '_anon_7');
1437
1438
2.95M
        ::hilti::rt::Bool _t_stop = ::hilti::rt::Bool{false};
1439
2.95M
        ::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::Label> _t_dd = _t_elem.value();
1440
2.95M
        _t_stop = (_t_stop) || ((((::hilti::rt::tuple::get<0>((*_t_dd).len.value().value)) == ::hilti::rt::integer::safe<std::uint8_t>{0U}) || ((::hilti::rt::tuple::get<1>((*_t_dd).len.value().value)) != ::hilti::rt::integer::safe<std::uint8_t>{0U})));
1441
2.95M
        if ( ! (_t_stop) ) {
1442
400k
        }
1443
1444
2.95M
        if ( _t_stop ) {
1445
2.53M
            goto _t_done_97935;
1446
2.53M
        }
1447
1448
414k
        if ( (_t_cur.begin() == _t_old_begin) && (! (::spicy::rt::detail::atEod(_t_data, _t_cur, (_t_lhs_4=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{}))))) ) {
1449
0
              ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:114:5-114:81");
1450
0
            throw ::spicy::rt::ParseError{"loop body did not change input position, possible infinite loop"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:114:5-114:81"};
1451
0
        }
1452
414k
    }
1453
1454
2.55M
    _t_done_97935: {}
1455
1456
2.55M
    return ::hilti::rt::tuple::make_from_optionals(::hilti::rt::optional::make(_t_cur), ::hilti::rt::optional::make(_t_lah), ::hilti::rt::optional::make(_t_lahe), ::hilti::rt::optional::make(_t_error));
1457
2.56M
}
1458
1459
2.56M
auto hlt_internal_dns_Message::DNS::Name::_t_parse_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::View& _t_cur, const ::hilti::rt::integer::safe<int64_t>& _t_lah, const ::hilti::rt::stream::SafeConstIterator& _t_lahe, const ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>& _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
1460
2.56M
    auto _t_self = Name::_t_self();
1461
2.56M
    ::hilti::rt::detail::checkStack();
1462
2.56M
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:113:13-117:1");
1463
2.56M
    ::hilti::rt::debug::indent("spicy"sv);
1464
2.56M
    ::hilti::rt::stream::SafeConstIterator _t_begin_ = _t_cur.begin();
1465
2.56M
    return (*_t_self)._t_parse_DNS__Name_7_stage2(_t_data, _t_begin_, _t_cur, _t_lah, _t_lahe, _t_error);
1466
2.56M
}
1467
1468
36.9k
auto hlt_internal_dns_Message::DNS::Pointer::_t_parse_DNS__Pointer_8_stage2(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, ::hilti::rt::stream::View _t_cur, const ::hilti::rt::Bool& _t_trim, const ::hilti::rt::integer::safe<int64_t>& _t_lah, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
1469
36.9k
    ::hilti::rt::Result<::hilti::rt::Tuple<::hilti::rt::integer::safe<uint16_t>, ::hilti::rt::stream::View>> _t_x_3;
1470
36.9k
    auto _t_self = Pointer::_t_self();
1471
36.9k
    ::hilti::rt::detail::checkStack();
1472
36.9k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:119:16-125:5");
1473
36.9k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:120:10-122:9");
1474
1475
    // Begin parsing production: Variable: len_18 -> bitfield(16) { offset: 0..13; };
1476
36.9k
    ::spicy::rt::detail::waitForInput(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{2U}, "expecting 2 bytes for unpacking value"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:120:10-122:9"sv, ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{});
1477
36.9k
    ::hilti::rt::tuple::assign(std::tie((*_t_self).len.valueOrInit(), _t_cur), (_t_x_3 = ::hilti::rt::integer::unpack<uint16_t>(_t_cur, ::hilti::rt::ByteOrder{::hilti::rt::ByteOrder::Network}), ::hilti::rt::make_result(::hilti::rt::tuple::make(::hilti::rt::make_bitfield(&type_info::_t_ti_bitfieldx2a16x2b_x73_offset__0__13x3e_x75_bitfieldx2a16_offset_0_13_x2b, ::hilti::rt::integer::bits(::hilti::rt::tuple::get<0>(*_t_x_3), 0, 13, ::hilti::rt::integer::BitOrder{::hilti::rt::integer::BitOrder::LSB0}), ::hilti::rt::integer::noop(::hilti::rt::tuple::get<0>(*_t_x_3))), ::hilti::rt::tuple::get<1>(*_t_x_3)))).valueOrThrow());
1478
36.9k
    if ( _t_trim ) {
1479
0
        (*_t_data).trim(_t_cur.begin());
1480
0
    }
1481
1482
    // End parsing production: Variable: len_18 -> bitfield(16) { offset: 0..13; };
1483
1484
36.9k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:113:13-117:1");
1485
36.9k
    ::hilti::rt::stream::SafeConstIterator _t_parse_at = ((*_t_self->_t_p_msg.derefAsValue())._t_begin + ::hilti::rt::integer::safe<uint64_t>{(::hilti::rt::tuple::get<0>((*_t_self).len.value().value))});
1486
36.9k
    ::hilti::rt::integer::safe<int64_t> _t_parse_lah = ::hilti::rt::integer::safe<std::int64_t>{0};
1487
36.9k
    ::hilti::rt::stream::SafeConstIterator _t_parse_lahe;
1488
36.9k
    ::hilti::rt::stream::SafeConstIterator _t_parse_begin = _t_parse_at;
1489
36.9k
    ::hilti::rt::stream::View _t_parse_cur = _t_cur.advance(_t_parse_at);
1490
1491
    // Begin parsing production: Unit: DNS__Name_8 -> _anon_7_8 (field 'name', id n/a, parser, args: (msg));
1492
36.9k
    (*_t_self).name.valueOrInit() = (hlt_internal_dns_Message::DNS::Name{::hilti::rt::struct_::tag::Parameters(), _t_self->_t_p_msg.derefAsValue()});
1493
36.9k
    ::hilti::rt::tuple::assign(std::tie(_t_parse_cur, _t_parse_lah, _t_parse_lahe, _t_error), (*(*_t_self).name.value())._t_parse_stage1(_t_data, _t_parse_cur, ::hilti::rt::detail::move_non_trivial(_t_parse_lah), _t_parse_lahe, _t_error));
1494
    // End parsing production: Unit: DNS__Name_8 -> _anon_7_8 (field 'name', id n/a, parser, args: (msg));
1495
1496
36.9k
    ::hilti::rt::debug::dedent("spicy"sv);
1497
36.9k
    return ::hilti::rt::tuple::make_from_optionals(::hilti::rt::optional::make(_t_cur), ::hilti::rt::optional::make(_t_lah), ::hilti::rt::optional::make(_t_error));
1498
36.9k
}
1499
1500
36.9k
auto hlt_internal_dns_Message::DNS::Pointer::_t_parse_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::View& _t_cur, const ::hilti::rt::Bool& _t_trim, const ::hilti::rt::integer::safe<int64_t>& _t_lah, const ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>& _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
1501
36.9k
    auto _t_self = Pointer::_t_self();
1502
36.9k
    ::hilti::rt::detail::checkStack();
1503
36.9k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:119:16-125:5");
1504
36.9k
    ::hilti::rt::debug::indent("spicy"sv);
1505
36.9k
    ::hilti::rt::stream::SafeConstIterator _t_begin_ = _t_cur.begin();
1506
36.9k
    return (*_t_self)._t_parse_DNS__Pointer_8_stage2(_t_data, _t_cur, _t_trim, _t_lah, _t_error);
1507
36.9k
}
1508
1509
822k
auto hlt_internal_dns_Message::DNS::Question::_t_parse_DNS__Question_2_stage2(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, ::hilti::rt::stream::View _t_cur, const ::hilti::rt::Bool& _t_trim, ::hilti::rt::integer::safe<int64_t> _t_lah, ::hilti::rt::stream::SafeConstIterator _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
1510
822k
    auto _t_self = Question::_t_self();
1511
822k
    ::hilti::rt::detail::checkStack();
1512
822k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:59:17-63:1");
1513
822k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:113:13-117:1");
1514
1515
    // Begin parsing production: Unit: DNS__Name_2 -> _anon_7_2 (field 'qname', id n/a, parser, args: (msg));
1516
822k
    (*_t_self).qname.valueOrInit() = (hlt_internal_dns_Message::DNS::Name{::hilti::rt::struct_::tag::Parameters(), _t_self->_t_p_msg.derefAsValue()});
1517
822k
    ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*(*_t_self).qname.value())._t_parse_stage1(_t_data, _t_cur, _t_lah, _t_lahe, _t_error));
1518
    // End parsing production: Unit: DNS__Name_2 -> _anon_7_2 (field 'qname', id n/a, parser, args: (msg));
1519
1520
822k
    ::hilti::rt::integer::safe<uint16_t> _t_v_qtype;
1521
822k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:61:13-61:18");
1522
1523
    // Begin parsing production: Variable: qtype_2 -> uint<16>;
1524
822k
    ::spicy::rt::detail::waitForInput(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{2U}, "expecting 2 bytes for unpacking value"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:61:13-61:18"sv, ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{});
1525
822k
    ::hilti::rt::tuple::assign(std::tie(_t_v_qtype, _t_cur), ::hilti::rt::integer::unpack<uint16_t>(_t_cur, ::hilti::rt::ByteOrder{::hilti::rt::ByteOrder::Network}).valueOrThrow());
1526
822k
    if ( _t_trim ) {
1527
0
        (*_t_data).trim(_t_cur.begin());
1528
0
    }
1529
1530
    // End parsing production: Variable: qtype_2 -> uint<16>;
1531
1532
822k
    ::hilti::rt::integer::safe<uint16_t> _t_v_qclass;
1533
822k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:62:13-62:18");
1534
1535
    // Begin parsing production: Variable: qclass_2 -> uint<16>;
1536
822k
    ::spicy::rt::detail::waitForInput(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{2U}, "expecting 2 bytes for unpacking value"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:62:13-62:18"sv, ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{});
1537
822k
    ::hilti::rt::tuple::assign(std::tie(_t_v_qclass, _t_cur), ::hilti::rt::integer::unpack<uint16_t>(_t_cur, ::hilti::rt::ByteOrder{::hilti::rt::ByteOrder::Network}).valueOrThrow());
1538
822k
    if ( _t_trim ) {
1539
0
        (*_t_data).trim(_t_cur.begin());
1540
0
    }
1541
1542
    // End parsing production: Variable: qclass_2 -> uint<16>;
1543
1544
822k
    ::hilti::rt::debug::dedent("spicy"sv);
1545
822k
    return ::hilti::rt::tuple::make_from_optionals(::hilti::rt::optional::make(_t_cur), ::hilti::rt::optional::make(_t_lah), ::hilti::rt::optional::make(_t_lahe), ::hilti::rt::optional::make(_t_error));
1546
822k
}
1547
1548
822k
auto hlt_internal_dns_Message::DNS::Question::_t_parse_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::View& _t_cur, const ::hilti::rt::Bool& _t_trim, const ::hilti::rt::integer::safe<int64_t>& _t_lah, const ::hilti::rt::stream::SafeConstIterator& _t_lahe, const ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>& _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
1549
822k
    auto _t_self = Question::_t_self();
1550
822k
    ::hilti::rt::detail::checkStack();
1551
822k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:59:17-63:1");
1552
822k
    ::hilti::rt::debug::indent("spicy"sv);
1553
822k
    ::hilti::rt::stream::SafeConstIterator _t_begin_ = _t_cur.begin();
1554
822k
    return (*_t_self)._t_parse_DNS__Question_2_stage2(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error);
1555
822k
}
1556
1557
3.22k
auto hlt_internal_dns_Message::DNS::RDataMX::_t_parse_DNS__RDataMX_3_stage2(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, ::hilti::rt::stream::View _t_cur, const ::hilti::rt::Bool& _t_trim, ::hilti::rt::integer::safe<int64_t> _t_lah, ::hilti::rt::stream::SafeConstIterator _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
1558
3.22k
    auto _t_self = RDataMX::_t_self();
1559
3.22k
    ::hilti::rt::detail::checkStack();
1560
3.22k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:86:16-89:1");
1561
3.22k
    ::hilti::rt::integer::safe<uint16_t> _t_v_preference;
1562
3.22k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:87:17-87:22");
1563
1564
    // Begin parsing production: Variable: preference_3 -> uint<16>;
1565
3.22k
    ::spicy::rt::detail::waitForInput(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{2U}, "expecting 2 bytes for unpacking value"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:87:17-87:22"sv, ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{});
1566
3.22k
    ::hilti::rt::tuple::assign(std::tie(_t_v_preference, _t_cur), ::hilti::rt::integer::unpack<uint16_t>(_t_cur, ::hilti::rt::ByteOrder{::hilti::rt::ByteOrder::Network}).valueOrThrow());
1567
3.22k
    if ( _t_trim ) {
1568
0
        (*_t_data).trim(_t_cur.begin());
1569
0
    }
1570
1571
    // End parsing production: Variable: preference_3 -> uint<16>;
1572
1573
3.22k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:113:13-117:1");
1574
1575
    // Begin parsing production: Unit: DNS__Name_4 -> _anon_7_4 (field 'name', id n/a, parser, args: (msg));
1576
3.22k
    (*_t_self).name.valueOrInit() = (hlt_internal_dns_Message::DNS::Name{::hilti::rt::struct_::tag::Parameters(), _t_self->_t_p_msg.derefAsValue()});
1577
3.22k
    ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*(*_t_self).name.value())._t_parse_stage1(_t_data, _t_cur, _t_lah, _t_lahe, _t_error));
1578
    // End parsing production: Unit: DNS__Name_4 -> _anon_7_4 (field 'name', id n/a, parser, args: (msg));
1579
1580
3.22k
    ::hilti::rt::debug::dedent("spicy"sv);
1581
3.22k
    return ::hilti::rt::tuple::make_from_optionals(::hilti::rt::optional::make(_t_cur), ::hilti::rt::optional::make(_t_lah), ::hilti::rt::optional::make(_t_lahe), ::hilti::rt::optional::make(_t_error));
1582
3.22k
}
1583
1584
3.22k
auto hlt_internal_dns_Message::DNS::RDataMX::_t_parse_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::View& _t_cur, const ::hilti::rt::Bool& _t_trim, const ::hilti::rt::integer::safe<int64_t>& _t_lah, const ::hilti::rt::stream::SafeConstIterator& _t_lahe, const ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>& _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
1585
3.22k
    auto _t_self = RDataMX::_t_self();
1586
3.22k
    ::hilti::rt::detail::checkStack();
1587
3.22k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:86:16-89:1");
1588
3.22k
    ::hilti::rt::debug::indent("spicy"sv);
1589
3.22k
    ::hilti::rt::stream::SafeConstIterator _t_begin_ = _t_cur.begin();
1590
3.22k
    return (*_t_self)._t_parse_DNS__RDataMX_3_stage2(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error);
1591
3.22k
}
1592
1593
5.79k
auto hlt_internal_dns_Message::DNS::RDataSOA::_t_parse_DNS__RDataSOA_3_stage2(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, ::hilti::rt::stream::View _t_cur, const ::hilti::rt::Bool& _t_trim, ::hilti::rt::integer::safe<int64_t> _t_lah, ::hilti::rt::stream::SafeConstIterator _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
1594
5.79k
    auto _t_self = RDataSOA::_t_self();
1595
5.79k
    ::hilti::rt::detail::checkStack();
1596
5.79k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:91:17-99:1");
1597
5.79k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:113:13-117:1");
1598
1599
    // Begin parsing production: Unit: DNS__Name_5 -> _anon_7_5 (field 'mname', id n/a, parser, args: (msg));
1600
5.79k
    (*_t_self).mname.valueOrInit() = (hlt_internal_dns_Message::DNS::Name{::hilti::rt::struct_::tag::Parameters(), _t_self->_t_p_msg.derefAsValue()});
1601
5.79k
    ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*(*_t_self).mname.value())._t_parse_stage1(_t_data, _t_cur, _t_lah, _t_lahe, _t_error));
1602
    // End parsing production: Unit: DNS__Name_5 -> _anon_7_5 (field 'mname', id n/a, parser, args: (msg));
1603
1604
5.79k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:113:13-117:1");
1605
1606
    // Begin parsing production: Unit: DNS__Name_5 -> _anon_7_5 (field 'mname', id n/a, parser, args: (msg));
1607
5.79k
    (*_t_self).rname.valueOrInit() = (hlt_internal_dns_Message::DNS::Name{::hilti::rt::struct_::tag::Parameters(), _t_self->_t_p_msg.derefAsValue()});
1608
5.79k
    ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*(*_t_self).rname.value())._t_parse_stage1(_t_data, _t_cur, _t_lah, _t_lahe, _t_error));
1609
    // End parsing production: Unit: DNS__Name_5 -> _anon_7_5 (field 'mname', id n/a, parser, args: (msg));
1610
1611
5.79k
    ::hilti::rt::integer::safe<uint32_t> _t_v_serial;
1612
5.79k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:94:17-94:22");
1613
1614
    // Begin parsing production: Variable: serial_3 -> uint<32>;
1615
5.79k
    ::spicy::rt::detail::waitForInput(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{4U}, "expecting 4 bytes for unpacking value"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:94:17-94:22"sv, ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{});
1616
5.79k
    ::hilti::rt::tuple::assign(std::tie(_t_v_serial, _t_cur), ::hilti::rt::integer::unpack<uint32_t>(_t_cur, ::hilti::rt::ByteOrder{::hilti::rt::ByteOrder::Network}).valueOrThrow());
1617
5.79k
    if ( _t_trim ) {
1618
0
        (*_t_data).trim(_t_cur.begin());
1619
0
    }
1620
1621
    // End parsing production: Variable: serial_3 -> uint<32>;
1622
1623
5.79k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:95:17-95:22");
1624
5.79k
    ::hilti::rt::integer::safe<uint32_t> _t_parsed_refresh;
1625
1626
    // Begin parsing production: Variable: refresh_3 -> uint<32>;
1627
5.79k
    ::spicy::rt::detail::waitForInput(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{4U}, "expecting 4 bytes for unpacking value"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:95:17-95:22"sv, ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{});
1628
5.79k
    ::hilti::rt::tuple::assign(std::tie(_t_parsed_refresh, _t_cur), ::hilti::rt::integer::unpack<uint32_t>(_t_cur, ::hilti::rt::ByteOrder{::hilti::rt::ByteOrder::Network}).valueOrThrow());
1629
5.79k
    if ( _t_trim ) {
1630
0
        (*_t_data).trim(_t_cur.begin());
1631
0
    }
1632
1633
    // End parsing production: Variable: refresh_3 -> uint<32>;
1634
1635
5.79k
    ::hilti::rt::Interval{::hilti::rt::integer::safe<uint64_t>{::hilti::rt::detail::move_non_trivial(_t_parsed_refresh)} * 1000000000, ::hilti::rt::Interval::NanosecondTag{}};
1636
5.79k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:96:17-96:22");
1637
5.79k
    ::hilti::rt::integer::safe<uint32_t> _t_parsed_retry;
1638
1639
    // Begin parsing production: Variable: retry_3 -> uint<32>;
1640
5.79k
    ::spicy::rt::detail::waitForInput(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{4U}, "expecting 4 bytes for unpacking value"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:96:17-96:22"sv, ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{});
1641
5.79k
    ::hilti::rt::tuple::assign(std::tie(_t_parsed_retry, _t_cur), ::hilti::rt::integer::unpack<uint32_t>(_t_cur, ::hilti::rt::ByteOrder{::hilti::rt::ByteOrder::Network}).valueOrThrow());
1642
5.79k
    if ( _t_trim ) {
1643
0
        (*_t_data).trim(_t_cur.begin());
1644
0
    }
1645
1646
    // End parsing production: Variable: retry_3 -> uint<32>;
1647
1648
5.79k
    ::hilti::rt::Interval{::hilti::rt::integer::safe<uint64_t>{::hilti::rt::detail::move_non_trivial(_t_parsed_retry)} * 1000000000, ::hilti::rt::Interval::NanosecondTag{}};
1649
5.79k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:97:17-97:22");
1650
5.79k
    ::hilti::rt::integer::safe<uint32_t> _t_parsed_expire;
1651
1652
    // Begin parsing production: Variable: expire_3 -> uint<32>;
1653
5.79k
    ::spicy::rt::detail::waitForInput(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{4U}, "expecting 4 bytes for unpacking value"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:97:17-97:22"sv, ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{});
1654
5.79k
    ::hilti::rt::tuple::assign(std::tie(_t_parsed_expire, _t_cur), ::hilti::rt::integer::unpack<uint32_t>(_t_cur, ::hilti::rt::ByteOrder{::hilti::rt::ByteOrder::Network}).valueOrThrow());
1655
5.79k
    if ( _t_trim ) {
1656
0
        (*_t_data).trim(_t_cur.begin());
1657
0
    }
1658
1659
    // End parsing production: Variable: expire_3 -> uint<32>;
1660
1661
5.79k
    ::hilti::rt::Interval{::hilti::rt::integer::safe<uint64_t>{::hilti::rt::detail::move_non_trivial(_t_parsed_expire)} * 1000000000, ::hilti::rt::Interval::NanosecondTag{}};
1662
5.79k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:98:17-98:22");
1663
5.79k
    ::hilti::rt::integer::safe<uint32_t> _t_parsed_minimum;
1664
1665
    // Begin parsing production: Variable: minimum_3 -> uint<32>;
1666
5.79k
    ::spicy::rt::detail::waitForInput(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{4U}, "expecting 4 bytes for unpacking value"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:98:17-98:22"sv, ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{});
1667
5.79k
    ::hilti::rt::tuple::assign(std::tie(_t_parsed_minimum, _t_cur), ::hilti::rt::integer::unpack<uint32_t>(_t_cur, ::hilti::rt::ByteOrder{::hilti::rt::ByteOrder::Network}).valueOrThrow());
1668
5.79k
    if ( _t_trim ) {
1669
0
        (*_t_data).trim(_t_cur.begin());
1670
0
    }
1671
1672
    // End parsing production: Variable: minimum_3 -> uint<32>;
1673
1674
5.79k
    ::hilti::rt::Interval{::hilti::rt::integer::safe<uint64_t>{::hilti::rt::detail::move_non_trivial(_t_parsed_minimum)} * 1000000000, ::hilti::rt::Interval::NanosecondTag{}};
1675
5.79k
    ::hilti::rt::debug::dedent("spicy"sv);
1676
5.79k
    return ::hilti::rt::tuple::make_from_optionals(::hilti::rt::optional::make(_t_cur), ::hilti::rt::optional::make(_t_lah), ::hilti::rt::optional::make(_t_lahe), ::hilti::rt::optional::make(_t_error));
1677
5.79k
}
1678
1679
5.79k
auto hlt_internal_dns_Message::DNS::RDataSOA::_t_parse_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::View& _t_cur, const ::hilti::rt::Bool& _t_trim, const ::hilti::rt::integer::safe<int64_t>& _t_lah, const ::hilti::rt::stream::SafeConstIterator& _t_lahe, const ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>& _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
1680
5.79k
    auto _t_self = RDataSOA::_t_self();
1681
5.79k
    ::hilti::rt::detail::checkStack();
1682
5.79k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:91:17-99:1");
1683
5.79k
    ::hilti::rt::debug::indent("spicy"sv);
1684
5.79k
    ::hilti::rt::stream::SafeConstIterator _t_begin_ = _t_cur.begin();
1685
5.79k
    return (*_t_self)._t_parse_DNS__RDataSOA_3_stage2(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error);
1686
5.79k
}
1687
1688
4.17k
auto hlt_internal_dns_Message::DNS::RDataSRV::_t_parse_DNS__RDataSRV_3_stage2(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, ::hilti::rt::stream::View _t_cur, const ::hilti::rt::Bool& _t_trim, ::hilti::rt::integer::safe<int64_t> _t_lah, ::hilti::rt::stream::SafeConstIterator _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
1689
4.17k
    auto _t_self = RDataSRV::_t_self();
1690
4.17k
    ::hilti::rt::detail::checkStack();
1691
4.17k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:101:17-106:1");
1692
4.17k
    ::hilti::rt::integer::safe<uint16_t> _t_v_priority_;
1693
4.17k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:102:17-102:22");
1694
1695
    // Begin parsing production: Variable: priority__3 -> uint<16>;
1696
4.17k
    ::spicy::rt::detail::waitForInput(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{2U}, "expecting 2 bytes for unpacking value"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:102:17-102:22"sv, ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{});
1697
4.17k
    ::hilti::rt::tuple::assign(std::tie(_t_v_priority_, _t_cur), ::hilti::rt::integer::unpack<uint16_t>(_t_cur, ::hilti::rt::ByteOrder{::hilti::rt::ByteOrder::Network}).valueOrThrow());
1698
4.17k
    if ( _t_trim ) {
1699
0
        (*_t_data).trim(_t_cur.begin());
1700
0
    }
1701
1702
    // End parsing production: Variable: priority__3 -> uint<16>;
1703
1704
4.17k
    ::hilti::rt::integer::safe<uint16_t> _t_v_weight;
1705
4.17k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:103:17-103:22");
1706
1707
    // Begin parsing production: Variable: weight_3 -> uint<16>;
1708
4.17k
    ::spicy::rt::detail::waitForInput(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{2U}, "expecting 2 bytes for unpacking value"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:103:17-103:22"sv, ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{});
1709
4.17k
    ::hilti::rt::tuple::assign(std::tie(_t_v_weight, _t_cur), ::hilti::rt::integer::unpack<uint16_t>(_t_cur, ::hilti::rt::ByteOrder{::hilti::rt::ByteOrder::Network}).valueOrThrow());
1710
4.17k
    if ( _t_trim ) {
1711
0
        (*_t_data).trim(_t_cur.begin());
1712
0
    }
1713
1714
    // End parsing production: Variable: weight_3 -> uint<16>;
1715
1716
4.17k
    ::hilti::rt::integer::safe<uint16_t> _t_v_port_;
1717
4.17k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:104:17-104:22");
1718
1719
    // Begin parsing production: Variable: port__3 -> uint<16>;
1720
4.17k
    ::spicy::rt::detail::waitForInput(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{2U}, "expecting 2 bytes for unpacking value"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:104:17-104:22"sv, ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{});
1721
4.17k
    ::hilti::rt::tuple::assign(std::tie(_t_v_port_, _t_cur), ::hilti::rt::integer::unpack<uint16_t>(_t_cur, ::hilti::rt::ByteOrder{::hilti::rt::ByteOrder::Network}).valueOrThrow());
1722
4.17k
    if ( _t_trim ) {
1723
0
        (*_t_data).trim(_t_cur.begin());
1724
0
    }
1725
1726
    // End parsing production: Variable: port__3 -> uint<16>;
1727
1728
4.17k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:113:13-117:1");
1729
1730
    // Begin parsing production: Unit: DNS__Name_6 -> _anon_7_6 (field 'target', id n/a, parser, args: (msg));
1731
4.17k
    (*_t_self).target.valueOrInit() = (hlt_internal_dns_Message::DNS::Name{::hilti::rt::struct_::tag::Parameters(), _t_self->_t_p_msg.derefAsValue()});
1732
4.17k
    ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*(*_t_self).target.value())._t_parse_stage1(_t_data, _t_cur, _t_lah, _t_lahe, _t_error));
1733
    // End parsing production: Unit: DNS__Name_6 -> _anon_7_6 (field 'target', id n/a, parser, args: (msg));
1734
1735
4.17k
    ::hilti::rt::debug::dedent("spicy"sv);
1736
4.17k
    return ::hilti::rt::tuple::make_from_optionals(::hilti::rt::optional::make(_t_cur), ::hilti::rt::optional::make(_t_lah), ::hilti::rt::optional::make(_t_lahe), ::hilti::rt::optional::make(_t_error));
1737
4.17k
}
1738
1739
4.17k
auto hlt_internal_dns_Message::DNS::RDataSRV::_t_parse_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::View& _t_cur, const ::hilti::rt::Bool& _t_trim, const ::hilti::rt::integer::safe<int64_t>& _t_lah, const ::hilti::rt::stream::SafeConstIterator& _t_lahe, const ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>& _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
1740
4.17k
    auto _t_self = RDataSRV::_t_self();
1741
4.17k
    ::hilti::rt::detail::checkStack();
1742
4.17k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:101:17-106:1");
1743
4.17k
    ::hilti::rt::debug::indent("spicy"sv);
1744
4.17k
    ::hilti::rt::stream::SafeConstIterator _t_begin_ = _t_cur.begin();
1745
4.17k
    return (*_t_self)._t_parse_DNS__RDataSRV_3_stage2(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error);
1746
4.17k
}
1747
1748
1.67M
auto hlt_internal_dns_Message::DNS::ResourceRecord::_t_parse_DNS__ResourceRecord_2_stage2(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, ::hilti::rt::stream::View _t_cur, ::hilti::rt::Bool _t_trim, ::hilti::rt::integer::safe<int64_t> _t_lah, ::hilti::rt::stream::SafeConstIterator _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
1749
1.67M
    auto _t_self = ResourceRecord::_t_self();
1750
1.67M
    ::hilti::rt::detail::checkStack();
1751
1.67M
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:65:23-84:1");
1752
1.67M
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:113:13-117:1");
1753
1754
    // Begin parsing production: Unit: DNS__Name_3 -> _anon_7_3 (field 'name', id n/a, parser, args: (msg));
1755
1.67M
    (*_t_self).name.valueOrInit() = (hlt_internal_dns_Message::DNS::Name{::hilti::rt::struct_::tag::Parameters(), _t_self->_t_p_msg.derefAsValue()});
1756
1.67M
    ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*(*_t_self).name.value())._t_parse_stage1(_t_data, _t_cur, _t_lah, _t_lahe, _t_error));
1757
    // End parsing production: Unit: DNS__Name_3 -> _anon_7_3 (field 'name', id n/a, parser, args: (msg));
1758
1759
1.67M
    DNS::RDType _t_v_ty = DNS::RDType::Undef;
1760
1.67M
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:67:13-67:18");
1761
1.67M
    ::hilti::rt::integer::safe<uint16_t> _t_parsed_ty;
1762
1763
    // Begin parsing production: Variable: ty_2 -> uint<16>;
1764
1.67M
    ::spicy::rt::detail::waitForInput(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{2U}, "expecting 2 bytes for unpacking value"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:67:13-67:18"sv, ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{});
1765
1.67M
    ::hilti::rt::tuple::assign(std::tie(_t_parsed_ty, _t_cur), ::hilti::rt::integer::unpack<uint16_t>(_t_cur, ::hilti::rt::ByteOrder{::hilti::rt::ByteOrder::Network}).valueOrThrow());
1766
1.67M
    if ( _t_trim ) {
1767
0
        (*_t_data).trim(_t_cur.begin());
1768
0
    }
1769
1770
    // End parsing production: Variable: ty_2 -> uint<16>;
1771
1772
1.67M
    _t_v_ty = DNS::RDType{::hilti::rt::detail::move_non_trivial(_t_parsed_ty)};
1773
1.67M
    (*_t_self).ty.valueOrInit() = ::hilti::rt::detail::move_non_trivial(_t_v_ty);
1774
1.67M
    ::hilti::rt::integer::safe<uint16_t> _t_v_class;
1775
1.67M
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:68:13-68:18");
1776
1777
    // Begin parsing production: Variable: class_2 -> uint<16>;
1778
1.67M
    ::spicy::rt::detail::waitForInput(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{2U}, "expecting 2 bytes for unpacking value"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:68:13-68:18"sv, ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{});
1779
1.67M
    ::hilti::rt::tuple::assign(std::tie(_t_v_class, _t_cur), ::hilti::rt::integer::unpack<uint16_t>(_t_cur, ::hilti::rt::ByteOrder{::hilti::rt::ByteOrder::Network}).valueOrThrow());
1780
1.67M
    if ( _t_trim ) {
1781
0
        (*_t_data).trim(_t_cur.begin());
1782
0
    }
1783
1784
    // End parsing production: Variable: class_2 -> uint<16>;
1785
1786
1.67M
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:69:13-69:18");
1787
1.67M
    ::hilti::rt::integer::safe<uint32_t> _t_parsed_ttl;
1788
1789
    // Begin parsing production: Variable: ttl_2 -> uint<32>;
1790
1.67M
    ::spicy::rt::detail::waitForInput(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{4U}, "expecting 4 bytes for unpacking value"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:69:13-69:18"sv, ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{});
1791
1.67M
    ::hilti::rt::tuple::assign(std::tie(_t_parsed_ttl, _t_cur), ::hilti::rt::integer::unpack<uint32_t>(_t_cur, ::hilti::rt::ByteOrder{::hilti::rt::ByteOrder::Network}).valueOrThrow());
1792
1.67M
    if ( _t_trim ) {
1793
0
        (*_t_data).trim(_t_cur.begin());
1794
0
    }
1795
1796
    // End parsing production: Variable: ttl_2 -> uint<32>;
1797
1798
1.67M
    ::hilti::rt::Interval{::hilti::rt::integer::safe<uint64_t>{::hilti::rt::detail::move_non_trivial(_t_parsed_ttl)} * 1000000000, ::hilti::rt::Interval::NanosecondTag{}};
1799
1.67M
    ::hilti::rt::integer::safe<uint16_t> _t_v_rdlen;
1800
1.67M
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:70:13-70:18");
1801
1802
    // Begin parsing production: Variable: rdlen_2 -> uint<16>;
1803
1.67M
    ::spicy::rt::detail::waitForInput(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{2U}, "expecting 2 bytes for unpacking value"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:70:13-70:18"sv, ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{});
1804
1.67M
    ::hilti::rt::tuple::assign(std::tie(_t_v_rdlen, _t_cur), ::hilti::rt::integer::unpack<uint16_t>(_t_cur, ::hilti::rt::ByteOrder{::hilti::rt::ByteOrder::Network}).valueOrThrow());
1805
1.67M
    if ( _t_trim ) {
1806
0
        (*_t_data).trim(_t_cur.begin());
1807
0
    }
1808
1809
    // End parsing production: Variable: rdlen_2 -> uint<16>;
1810
1811
1.67M
    (*_t_self).rdlen.valueOrInit() = ::hilti::rt::detail::move_non_trivial(_t_v_rdlen);
1812
1.67M
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:72:5-83:23");
1813
1814
    // Begin parsing production: Switch: switch_5 -> [RDType::NS,RDType::CNAME,RDType::PTR] -> switch_5_case_1 | [RDType::A] -> switch_5_case_2 | [RDType::AAAA] -> switch_5_case_3 | [RDType::MX] -> switch_5_case_4 | [RDType::SOA] -> switch_5_case_5 | [RDType::SRV] -> switch_5_case_6 | [RDType::TXT] -> switch_5_case_7 |  | * -> switch_5_default;
1815
1.67M
    ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*_t_self)._t_parse_switch_5_stage1(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error));
1816
    // End parsing production: Switch: switch_5 -> [RDType::NS,RDType::CNAME,RDType::PTR] -> switch_5_case_1 | [RDType::A] -> switch_5_case_2 | [RDType::AAAA] -> switch_5_case_3 | [RDType::MX] -> switch_5_case_4 | [RDType::SOA] -> switch_5_case_5 | [RDType::SRV] -> switch_5_case_6 | [RDType::TXT] -> switch_5_case_7 |  | * -> switch_5_default;
1817
1818
1.67M
    ::hilti::rt::debug::dedent("spicy"sv);
1819
1.67M
    return ::hilti::rt::tuple::make_from_optionals(::hilti::rt::optional::make(_t_cur), ::hilti::rt::optional::make(_t_lah), ::hilti::rt::optional::make(_t_lahe), ::hilti::rt::optional::make(_t_error));
1820
1.67M
}
1821
1822
1.67M
auto hlt_internal_dns_Message::DNS::ResourceRecord::_t_parse_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, const ::hilti::rt::stream::View& _t_cur, const ::hilti::rt::Bool& _t_trim, const ::hilti::rt::integer::safe<int64_t>& _t_lah, const ::hilti::rt::stream::SafeConstIterator& _t_lahe, const ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>& _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
1823
1.67M
    auto _t_self = ResourceRecord::_t_self();
1824
1.67M
    ::hilti::rt::detail::checkStack();
1825
1.67M
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:65:23-84:1");
1826
1.67M
    ::hilti::rt::debug::indent("spicy"sv);
1827
1.67M
    ::hilti::rt::stream::SafeConstIterator _t_begin_ = _t_cur.begin();
1828
1.67M
    return (*_t_self)._t_parse_DNS__ResourceRecord_2_stage2(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error);
1829
1.67M
}
1830
1831
1.67M
auto hlt_internal_dns_Message::DNS::ResourceRecord::_t_parse_switch_5_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, ::hilti::rt::stream::View _t_cur, ::hilti::rt::Bool _t_trim, ::hilti::rt::integer::safe<int64_t> _t_lah, ::hilti::rt::stream::SafeConstIterator _t_lahe, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
1832
1.67M
    auto _t_self = ResourceRecord::_t_self();
1833
1.67M
    ::hilti::rt::detail::checkStack();
1834
1.67M
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:72:5-83:23");
1835
1.67M
    ::hilti::rt::debug::indent("spicy"sv);
1836
1.67M
    ::hilti::rt::integer::safe<uint64_t> _t_size = ::hilti::rt::integer::safe<uint64_t>{(*_t_self).rdlen.value()};
1837
1.67M
    ::hilti::rt::stream::View _t_limited_field = _t_cur.limit(_t_size);
1838
1.67M
    ::hilti::rt::stream::View _t_ncur = _t_cur.advance(_t_size);
1839
1.67M
      ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:72:5-83:23");
1840
1.67M
    switch ( auto _t_x = (*_t_self).ty.value(); (_t_x).value() ) {
1841
10.0k
        case (DNS::RDType{DNS::RDType::NS}).value(): case (DNS::RDType{DNS::RDType::CNAME}).value(): case (DNS::RDType{DNS::RDType::PTR}).value(): {
1842
10.0k
              ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:73:9-74:43");
1843
10.0k
            ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:73:9-74:43");
1844
1845
            // Begin parsing production: Block: switch_5_case_1 -> Resolved_18;
1846
10.0k
            ::hilti::rt::debug::indent("spicy"sv);
1847
10.0k
            ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:113:13-117:1");
1848
1849
            // Begin parsing production: Unit: DNS__Name_3 -> _anon_7_3 (field 'name', id n/a, parser, args: (msg));
1850
10.0k
            (*_t_self).rname.valueOrInit() = (hlt_internal_dns_Message::DNS::Name{::hilti::rt::struct_::tag::Parameters(), _t_self->_t_p_msg.derefAsValue()});
1851
10.0k
            ::hilti::rt::tuple::assign(std::tie(_t_limited_field, _t_lah, _t_lahe, _t_error), (*(*_t_self).rname.value())._t_parse_stage1(_t_data, _t_limited_field, _t_lah, _t_lahe, _t_error));
1852
            // End parsing production: Unit: DNS__Name_3 -> _anon_7_3 (field 'name', id n/a, parser, args: (msg));
1853
1854
10.0k
            ::hilti::rt::debug::dedent("spicy"sv);
1855
            // End parsing production: Block: switch_5_case_1 -> Resolved_18;
1856
1857
10.0k
            break;
1858
8.94k
        }
1859
1.35k
        case (DNS::RDType{DNS::RDType::A}).value(): {
1860
1.35k
              ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:75:9-75:44");
1861
1.35k
            ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:75:9-75:44");
1862
1863
            // Begin parsing production: Block: switch_5_case_2 -> a_3;
1864
1.35k
            ::hilti::rt::debug::indent("spicy"sv);
1865
1.35k
            ::hilti::rt::Address _t_v_a;
1866
1.35k
            ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:75:34-75:37");
1867
1868
            // Begin parsing production: Variable: a_3 -> addr;
1869
1.35k
            ::spicy::rt::detail::waitForInput(_t_data, _t_limited_field, ::hilti::rt::integer::safe<std::uint64_t>{4U}, "expecting 4 bytes for unpacking value"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:75:34-75:37"sv, ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{});
1870
1.35k
            ::hilti::rt::tuple::assign(std::tie(_t_v_a, _t_limited_field), ::hilti::rt::address::unpack(_t_limited_field, ::hilti::rt::AddressFamily{::hilti::rt::AddressFamily::IPv4}, ::hilti::rt::ByteOrder{::hilti::rt::ByteOrder::Network}).valueOrThrow());
1871
1.35k
            if ( _t_trim ) {
1872
0
                (*_t_data).trim(_t_limited_field.begin());
1873
0
            }
1874
1875
            // End parsing production: Variable: a_3 -> addr;
1876
1877
1.35k
            ::hilti::rt::debug::dedent("spicy"sv);
1878
            // End parsing production: Block: switch_5_case_2 -> a_3;
1879
1880
1.35k
            break;
1881
8.94k
        }
1882
2.71k
        case (DNS::RDType{DNS::RDType::AAAA}).value(): {
1883
2.71k
              ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:76:9-76:44");
1884
2.71k
            ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:76:9-76:44");
1885
1886
            // Begin parsing production: Block: switch_5_case_3 -> a_4;
1887
2.71k
            ::hilti::rt::debug::indent("spicy"sv);
1888
2.71k
            ::hilti::rt::Address _t_v_a;
1889
2.71k
            ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:76:34-76:37");
1890
1891
            // Begin parsing production: Variable: a_4 -> addr;
1892
2.71k
            ::spicy::rt::detail::waitForInput(_t_data, _t_limited_field, ::hilti::rt::integer::safe<std::uint64_t>{16U}, "expecting 16 bytes for unpacking value"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:76:34-76:37"sv, ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{});
1893
2.71k
            ::hilti::rt::tuple::assign(std::tie(_t_v_a, _t_limited_field), ::hilti::rt::address::unpack(_t_limited_field, ::hilti::rt::AddressFamily{::hilti::rt::AddressFamily::IPv6}, ::hilti::rt::ByteOrder{::hilti::rt::ByteOrder::Network}).valueOrThrow());
1894
2.71k
            if ( _t_trim ) {
1895
0
                (*_t_data).trim(_t_limited_field.begin());
1896
0
            }
1897
1898
            // End parsing production: Variable: a_4 -> addr;
1899
1900
2.71k
            ::hilti::rt::debug::dedent("spicy"sv);
1901
            // End parsing production: Block: switch_5_case_3 -> a_4;
1902
1903
2.71k
            break;
1904
8.94k
        }
1905
3.22k
        case (DNS::RDType{DNS::RDType::MX}).value(): {
1906
3.22k
              ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:77:9-77:46");
1907
3.22k
            ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:77:9-77:46");
1908
1909
            // Begin parsing production: Block: switch_5_case_4 -> Resolved_21;
1910
3.22k
            ::hilti::rt::debug::indent("spicy"sv);
1911
3.22k
            ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:86:16-89:1");
1912
1913
            // Begin parsing production: Unit: DNS__RDataMX_2 -> preference_2 Resolved_18 (field 'mx', id n/a, parser, args: (msg));
1914
3.22k
            (*_t_self).mx.valueOrInit() = (hlt_internal_dns_Message::DNS::RDataMX{::hilti::rt::struct_::tag::Parameters(), _t_self->_t_p_msg.derefAsValue()});
1915
3.22k
            ::hilti::rt::tuple::assign(std::tie(_t_limited_field, _t_lah, _t_lahe, _t_error), (*(*_t_self).mx.value())._t_parse_stage1(_t_data, _t_limited_field, _t_trim, _t_lah, _t_lahe, _t_error));
1916
            // End parsing production: Unit: DNS__RDataMX_2 -> preference_2 Resolved_18 (field 'mx', id n/a, parser, args: (msg));
1917
1918
3.22k
            ::hilti::rt::debug::dedent("spicy"sv);
1919
            // End parsing production: Block: switch_5_case_4 -> Resolved_21;
1920
1921
3.22k
            break;
1922
8.94k
        }
1923
5.79k
        case (DNS::RDType{DNS::RDType::SOA}).value(): {
1924
5.79k
              ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:78:9-78:47");
1925
5.79k
            ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:78:9-78:47");
1926
1927
            // Begin parsing production: Block: switch_5_case_5 -> Resolved_22;
1928
5.79k
            ::hilti::rt::debug::indent("spicy"sv);
1929
5.79k
            ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:91:17-99:1");
1930
1931
            // Begin parsing production: Unit: DNS__RDataSOA_2 -> Resolved_18 Resolved_18 serial_2 refresh_2 retry_2 expire_2 minimum_2 (field 'soa', id n/a, parser, args: (msg));
1932
5.79k
            (*_t_self).soa.valueOrInit() = (hlt_internal_dns_Message::DNS::RDataSOA{::hilti::rt::struct_::tag::Parameters(), _t_self->_t_p_msg.derefAsValue()});
1933
5.79k
            ::hilti::rt::tuple::assign(std::tie(_t_limited_field, _t_lah, _t_lahe, _t_error), (*(*_t_self).soa.value())._t_parse_stage1(_t_data, _t_limited_field, _t_trim, _t_lah, _t_lahe, _t_error));
1934
            // End parsing production: Unit: DNS__RDataSOA_2 -> Resolved_18 Resolved_18 serial_2 refresh_2 retry_2 expire_2 minimum_2 (field 'soa', id n/a, parser, args: (msg));
1935
1936
5.79k
            ::hilti::rt::debug::dedent("spicy"sv);
1937
            // End parsing production: Block: switch_5_case_5 -> Resolved_22;
1938
1939
5.79k
            break;
1940
8.94k
        }
1941
4.17k
        case (DNS::RDType{DNS::RDType::SRV}).value(): {
1942
4.17k
              ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:79:9-79:47");
1943
4.17k
            ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:79:9-79:47");
1944
1945
            // Begin parsing production: Block: switch_5_case_6 -> Resolved_23;
1946
4.17k
            ::hilti::rt::debug::indent("spicy"sv);
1947
4.17k
            ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:101:17-106:1");
1948
1949
            // Begin parsing production: Unit: DNS__RDataSRV_2 -> priority__2 weight_2 port__2 Resolved_18 (field 'srv', id n/a, parser, args: (msg));
1950
4.17k
            (*_t_self).srv.valueOrInit() = (hlt_internal_dns_Message::DNS::RDataSRV{::hilti::rt::struct_::tag::Parameters(), _t_self->_t_p_msg.derefAsValue()});
1951
4.17k
            ::hilti::rt::tuple::assign(std::tie(_t_limited_field, _t_lah, _t_lahe, _t_error), (*(*_t_self).srv.value())._t_parse_stage1(_t_data, _t_limited_field, _t_trim, _t_lah, _t_lahe, _t_error));
1952
            // End parsing production: Unit: DNS__RDataSRV_2 -> priority__2 weight_2 port__2 Resolved_18 (field 'srv', id n/a, parser, args: (msg));
1953
1954
4.17k
            ::hilti::rt::debug::dedent("spicy"sv);
1955
            // End parsing production: Block: switch_5_case_6 -> Resolved_23;
1956
1957
4.17k
            break;
1958
8.94k
        }
1959
14.4k
        case (DNS::RDType{DNS::RDType::TXT}).value(): {
1960
14.4k
              ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:80:9-80:63");
1961
14.4k
            ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:80:9-80:63");
1962
1963
            // Begin parsing production: Block: switch_5_case_7 -> txt_2;
1964
14.4k
            ::hilti::rt::debug::indent("spicy"sv);
1965
14.4k
            ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:80:25-80:63");
1966
1967
            // Begin parsing production: ForEach: txt_2 -> foreach: Resolved_24;
1968
14.4k
            _t_limited_field = (*_t_self)._t_parse_txt_2_stage1(_t_data, _t_limited_field, _t_trim, (*_t_self).txt.valueOrInit());
1969
            // End parsing production: ForEach: txt_2 -> foreach: Resolved_24;
1970
1971
14.4k
            ::hilti::rt::debug::dedent("spicy"sv);
1972
            // End parsing production: Block: switch_5_case_7 -> txt_2;
1973
1974
14.4k
            break;
1975
8.94k
        }
1976
1.63M
        default: {
1977
1.63M
            ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_5;
1978
1.63M
              ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:82:9-82:44");
1979
1.63M
            ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:82:9-82:44");
1980
1981
            // Begin parsing production: Block: switch_5_default -> rdata_2;
1982
1.63M
            ::hilti::rt::debug::indent("spicy"sv);
1983
1.63M
            ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:82:34-82:38");
1984
1985
            // Begin parsing production: Variable: rdata_2 -> bytes;
1986
1.63M
            ::spicy::rt::detail::waitForEod(_t_data, _t_limited_field, (_t_lhs_5=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
1987
1.63M
            _t_limited_field = _t_limited_field.advance(_t_limited_field.size());
1988
1.63M
            if ( _t_trim ) {
1989
0
                (*_t_data).trim(_t_limited_field.begin());
1990
0
            }
1991
1992
1.63M
            if ( _t_trim ) {
1993
0
                (*_t_data).trim(_t_limited_field.begin());
1994
0
            }
1995
1996
            // End parsing production: Variable: rdata_2 -> bytes;
1997
1998
1.63M
            ::hilti::rt::debug::dedent("spicy"sv);
1999
            // End parsing production: Block: switch_5_default -> rdata_2;
2000
1.63M
        }
2001
1.67M
    }
2002
1.67M
    if ( _t_limited_field.offset() < _t_ncur.offset() ) {
2003
515
          ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:83:7-83:22");
2004
515
        throw ::spicy::rt::ParseError{::hilti::rt::fmt("&size amount not consumed: expected %lu bytes, but got %lu bytes"sv, _t_size, _t_limited_field.offset() - (_t_ncur.offset() - _t_size)), "/src/spicy/spicy-dns/analyzer/analyzer.spicy:83:7-83:22"};
2005
515
    }
2006
2007
1.67M
    _t_cur = _t_ncur;
2008
1.67M
    ::hilti::rt::debug::dedent("spicy"sv);
2009
1.67M
    return ::hilti::rt::tuple::make_from_optionals(::hilti::rt::optional::make(_t_ncur), ::hilti::rt::optional::make(_t_lah), ::hilti::rt::optional::make(_t_lahe), ::hilti::rt::optional::make(_t_error));
2010
1.67M
}
2011
2012
14.4k
auto hlt_internal_dns_Message::DNS::ResourceRecord::_t_parse_txt_2_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, ::hilti::rt::stream::View _t_cur, const ::hilti::rt::Bool& _t_trim, ::hilti::rt::Vector<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::CharacterString>>& _t_dst) -> ::hilti::rt::stream::View {
2013
14.4k
    ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_6;
2014
14.4k
    auto _t_self = ResourceRecord::_t_self();
2015
14.4k
    ::hilti::rt::detail::checkStack();
2016
14.4k
    ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:80:25-80:63");
2017
2.33M
    while ( ! (::spicy::rt::detail::atEod(_t_data, _t_cur, (_t_lhs_6=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})))) ) {
2018
2.31M
        ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_7;
2019
2.31M
        ::hilti::rt::stream::SafeConstIterator _t_old_begin = _t_cur.begin();
2020
2.31M
        ::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::CharacterString>> _t_elem;
2021
2.31M
        ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:108:24-111:1");
2022
2023
        // Begin parsing production: Unit: DNS__CharacterString_2 -> len_8 data_2 (field '_anon_5', id n/a, parser, args: (msg)) (container 'txt');
2024
2.31M
        _t_elem = ::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_dns_Message::DNS::CharacterString>>((hlt_internal_dns_Message::DNS::CharacterString{::hilti::rt::struct_::tag::Parameters(), _t_self->_t_p_msg.derefAsValue()}));
2025
2.31M
        _t_cur = (*_t_elem.value())._t_parse_stage1(_t_data, _t_cur, _t_trim);
2026
        // End parsing production: Unit: DNS__CharacterString_2 -> len_8 data_2 (field '_anon_5', id n/a, parser, args: (msg)) (container 'txt');
2027
2028
2.31M
        _t_dst.emplace_back(::hilti::rt::detail::move_non_trivial(_t_elem).value());
2029
2.31M
        if ( (_t_cur.begin() == _t_old_begin) && (! (::spicy::rt::detail::atEod(_t_data, _t_cur, (_t_lhs_7=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{}))))) ) {
2030
0
              ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:80:25-80:63");
2031
0
            throw ::spicy::rt::ParseError{"loop body did not change input position, possible infinite loop"sv, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:80:25-80:63"};
2032
0
        }
2033
2.31M
    }
2034
2035
14.4k
    return _t_cur;
2036
14.4k
}
2037
2038
2.94k
extern void hlt_internal_dns_Message::DNS::_t_hook_Header__t_on_0x25_done_17022904905284755206(::hilti::rt::ValueReference<Header>& _t_self) {
2039
2.94k
    ::hilti::rt::detail::checkStack();
2040
2.94k
      ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:48:9-55:48");
2041
2.94k
    if ( (*_t_self).qdcount.value() == ::hilti::rt::integer::safe<std::uint16_t>{0U} ) {
2042
2.38k
          ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:49:13-49:51");
2043
2.38k
        ((::hilti::rt::tuple::get<9>((*_t_self).flags.value().value)) != ::hilti::rt::integer::safe<std::uint16_t>{0U});
2044
2.38k
    }
2045
559
    else {
2046
559
          ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:52:13-55:47");
2047
559
        (((((::hilti::rt::tuple::get<0>((*_t_self).flags.value().value)) == ::hilti::rt::integer::safe<std::uint16_t>{1U}) && ((*_t_self).ancount.value() == ::hilti::rt::integer::safe<std::uint16_t>{0U})) && ((*_t_self).nscount.value() == ::hilti::rt::integer::safe<std::uint16_t>{0U})) && ((*_t_self).arcount.value() == ::hilti::rt::integer::safe<std::uint16_t>{0U}));
2048
559
    }
2049
2.94k
}
2050
2051
2.91M
extern void hlt_internal_dns_Message::DNS::_t_hook_Label__t_on_label_751145481021401729(::hilti::rt::ValueReference<Label>& _t_self) {
2052
2.91M
    ::hilti::rt::detail::checkStack();
2053
2.91M
      ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:135:21-139:25");
2054
2.91M
    if ( ::hilti::rt::Bool{static_cast<bool>((*_t_self).label.value().size())} ) {
2055
400k
          ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:136:25-136:42");
2056
400k
        (*_t_self->_t_p_name.derefAsValue()).label.append("."_b);
2057
400k
          ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:137:25-137:48");
2058
400k
        (*_t_self->_t_p_name.derefAsValue()).label.append((*_t_self).label.value());
2059
400k
          ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:138:25-138:52");
2060
400k
        assert_label_len((*_t_self->_t_p_name.derefAsValue()).label);
2061
400k
    }
2062
2.91M
}
2063
2064
23.6k
extern void hlt_internal_dns_Message::DNS::_t_hook_Label__t_on_ptr_7802471963454539575(::hilti::rt::ValueReference<Label>& _t_self) {
2065
23.6k
    ::hilti::rt::detail::checkStack();
2066
23.6k
      ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:143:21-143:53");
2067
23.6k
    (*_t_self->_t_p_name.derefAsValue()).label.append((*(*(*_t_self).ptr.value()).name.value()).label);
2068
23.6k
      ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:144:21-144:48");
2069
23.6k
    assert_label_len((*_t_self->_t_p_name.derefAsValue()).label);
2070
23.6k
      ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:147:21-147:52");
2071
23.6k
    (*_t_self)._t_position_update = ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>((*_t_self)._t_begin + ::hilti::rt::integer::safe<std::uint64_t>{2U});
2072
23.6k
}
2073
2074
1
extern void hlt_internal_dns_Message::DNS::_t_init_module() {
2075
1
    hlt_internal_dns_Message::DNS::_t_register_DNS_CharacterString();
2076
1
    hlt_internal_dns_Message::DNS::_t_register_DNS_Header();
2077
1
    hlt_internal_dns_Message::DNS::_t_register_DNS_Label();
2078
1
    hlt_internal_dns_Message::DNS::_t_register_DNS_Message();
2079
1
    hlt_internal_dns_Message::DNS::_t_register_DNS_Name();
2080
1
    hlt_internal_dns_Message::DNS::_t_register_DNS_Pointer();
2081
1
    hlt_internal_dns_Message::DNS::_t_register_DNS_Question();
2082
1
    hlt_internal_dns_Message::DNS::_t_register_DNS_RDataMX();
2083
1
    hlt_internal_dns_Message::DNS::_t_register_DNS_RDataSOA();
2084
1
    hlt_internal_dns_Message::DNS::_t_register_DNS_RDataSRV();
2085
1
    hlt_internal_dns_Message::DNS::_t_register_DNS_ResourceRecord();
2086
1
}
2087
2088
1
extern void hlt_internal_dns_Message::DNS::_t_register_DNS_CharacterString() { ::hilti::rt::detail::checkStack(); }
2089
2090
1
extern void hlt_internal_dns_Message::DNS::_t_register_DNS_Header() { ::hilti::rt::detail::checkStack(); }
2091
2092
1
extern void hlt_internal_dns_Message::DNS::_t_register_DNS_Label() { ::hilti::rt::detail::checkStack(); }
2093
2094
1
extern void hlt_internal_dns_Message::DNS::_t_register_DNS_Message() {
2095
1
    ::hilti::rt::detail::checkStack();
2096
1
    DNS::Message::_t_parser = ::spicy::rt::Parser{::hilti::rt::struct_::tag::Inits(), "DNS::Message"sv, ::hilti::rt::Bool{true}, hlt_dns_Message::DNS::Message::parse1, hlt_dns_Message::DNS::Message::parse2, hlt_dns_Message::DNS::Message::parse3, ::hilti::rt::Null{}, &type_info::_t_ti_DNS__Message_namex2aDNS__Messagex2b, ""_hs, ::hilti::rt::Vector<::spicy::rt::MIMEType>({}), ::hilti::rt::Vector<::spicy::rt::ParserPort>({})};
2097
1
    ::spicy::rt::detail::registerParser(DNS::Message::_t_parser, hlt_internal_dns_Message_hlto_scope, ::hilti::rt::StrongReference<hlt_internal_dns_Message::DNS::Message>{}, &type_info::_t_ti_strong_ref_const_DNS__Message__strong_refx2anamex2aDNS__Messagex2bx2b);
2098
1
}
2099
2100
1
extern void hlt_internal_dns_Message::DNS::_t_register_DNS_Name() { ::hilti::rt::detail::checkStack(); }
2101
2102
1
extern void hlt_internal_dns_Message::DNS::_t_register_DNS_Pointer() { ::hilti::rt::detail::checkStack(); }
2103
2104
1
extern void hlt_internal_dns_Message::DNS::_t_register_DNS_Question() { ::hilti::rt::detail::checkStack(); }
2105
2106
1
extern void hlt_internal_dns_Message::DNS::_t_register_DNS_RDataMX() { ::hilti::rt::detail::checkStack(); }
2107
2108
1
extern void hlt_internal_dns_Message::DNS::_t_register_DNS_RDataSOA() { ::hilti::rt::detail::checkStack(); }
2109
2110
1
extern void hlt_internal_dns_Message::DNS::_t_register_DNS_RDataSRV() { ::hilti::rt::detail::checkStack(); }
2111
2112
1
extern void hlt_internal_dns_Message::DNS::_t_register_DNS_ResourceRecord() { ::hilti::rt::detail::checkStack(); }
2113
2114
2
extern void hlt_internal_dns_Message::DNS::_t_register_module() {
2115
2
    ::hilti::rt::Library::setScope(&hlt_internal_dns_Message_hlto_scope);
2116
2
    ::hilti::rt::detail::registerModule({ "DNS", hlt_internal_dns_Message_hlto_scope, &_t_init_module, nullptr, nullptr, nullptr});
2117
2
}
2118
2119
424k
static void hlt_internal_dns_Message::DNS::assert_label_len(const ::hilti::rt::Bytes& labels) {
2120
424k
    ::hilti::rt::detail::checkStack();
2121
424k
      ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:156:5-157:56");
2122
424k
    if ( labels.size() > ::hilti::rt::integer::safe<std::uint64_t>{1024U} ) {
2123
10
          ::hilti::rt::location("/src/spicy/spicy-dns/analyzer/analyzer.spicy:157:9-157:56");
2124
10
        throw ::spicy::rt::ParseError{"maximum supported label length exceeded"_hs, "/src/spicy/spicy-dns/analyzer/analyzer.spicy:157:9-157:56"};
2125
10
    }
2126
424k
}
2127
2128
0
extern auto hlt_internal_dns_Message::DNS::operator<<(std::ostream& o, const hlt_internal_dns_Message::DNS::Header& x) -> std::ostream& { return o << ::hilti::rt::to_string(x);; }
2129
2130
0
inline auto hlt_internal_dns_Message::DNS::operator<<(std::ostream& o, RDType x) -> std::ostream& { o << ::hilti::rt::to_string(x); return o; }
2131
2132
0
inline auto hlt_internal_dns_Message::DNS::operator<<(std::ostream& o, RRType x) -> std::ostream& { o << ::hilti::rt::to_string(x); return o; }
2133
2134
0
extern auto hlt_internal_dns_Message::DNS::operator<<(std::ostream& o, const hlt_internal_dns_Message::DNS::ResourceRecord& x) -> std::ostream& { return o << ::hilti::rt::to_string(x);; }
2135
2136
0
extern auto hlt_internal_dns_Message::DNS::operator<<(std::ostream& o, const hlt_internal_dns_Message::DNS::Message& x) -> std::ostream& { return o << ::hilti::rt::to_string(x);; }
2137
2138
0
extern auto hlt_internal_dns_Message::DNS::operator<<(std::ostream& o, const hlt_internal_dns_Message::DNS::Name& x) -> std::ostream& { return o << ::hilti::rt::to_string(x);; }
2139
2140
0
extern auto hlt_internal_dns_Message::DNS::operator<<(std::ostream& o, const hlt_internal_dns_Message::DNS::RDataMX& x) -> std::ostream& { return o << ::hilti::rt::to_string(x);; }
2141
2142
0
extern auto hlt_internal_dns_Message::DNS::operator<<(std::ostream& o, const hlt_internal_dns_Message::DNS::RDataSOA& x) -> std::ostream& { return o << ::hilti::rt::to_string(x);; }
2143
2144
0
extern auto hlt_internal_dns_Message::DNS::operator<<(std::ostream& o, const hlt_internal_dns_Message::DNS::RDataSRV& x) -> std::ostream& { return o << ::hilti::rt::to_string(x);; }
2145
2146
0
extern auto hlt_internal_dns_Message::DNS::operator<<(std::ostream& o, const hlt_internal_dns_Message::DNS::CharacterString& x) -> std::ostream& { return o << ::hilti::rt::to_string(x);; }
2147
2148
0
extern auto hlt_internal_dns_Message::DNS::operator<<(std::ostream& o, const hlt_internal_dns_Message::DNS::Question& x) -> std::ostream& { return o << ::hilti::rt::to_string(x);; }
2149
2150
0
extern auto hlt_internal_dns_Message::DNS::operator<<(std::ostream& o, const hlt_internal_dns_Message::DNS::Pointer& x) -> std::ostream& { return o << ::hilti::rt::to_string(x);; }
2151
2152
0
extern auto hlt_internal_dns_Message::DNS::operator<<(std::ostream& o, const hlt_internal_dns_Message::DNS::Label& x) -> std::ostream& { return o << ::hilti::rt::to_string(x);; }