Coverage Report

Created: 2026-07-25 06:50

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/spicy/build/ci/fuzz/HTTP_Reply_HTTP.cc
Line
Count
Source
1
// Begin of HTTP (from "/src/spicy/spicy-http/analyzer/analyzer.spicy")
2
// Compiled by HILTI version 1.17.0-dev.173
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_HTTP_Reply_hlto_scope;
10
11
namespace hlt_internal_HTTP_Reply::type_info { namespace {
12
    extern const ::hilti::rt::TypeInfo _t_ti_HTTP__DeliveryMode_namex2aHTTP__DeliveryModex2b;
13
    extern const ::hilti::rt::TypeInfo _t_ti_HTTP__Message_namex2aHTTP__Messagex2b;
14
    extern const ::hilti::rt::TypeInfo _t_ti_vector_value_ref_Header___vectorx2anamex2aHTTP__Headerx2bx2b;
15
    extern const ::hilti::rt::TypeInfo _t_ti_value_ref_Header__value_refx2anamex2aHTTP__Headerx2bx2b;
16
    extern const ::hilti::rt::TypeInfo _t_ti_HTTP__Header_namex2aHTTP__Headerx2b;
17
    extern const ::hilti::rt::TypeInfo _t_ti_optional_spicy__RecoverableFailure__optionalx2anamex2ahilti__RecoverableFailurex2bx2b;
18
    extern const ::hilti::rt::TypeInfo _t_ti_hilti__RecoverableFailure_namex2ahilti__RecoverableFailurex2b;
19
    extern const ::hilti::rt::TypeInfo _t_ti_value_ref_Body__value_refx2anamex2aHTTP__Bodyx2bx2b;
20
    extern const ::hilti::rt::TypeInfo _t_ti_HTTP__Body_namex2aHTTP__Bodyx2b;
21
    extern const ::hilti::rt::TypeInfo _t_ti_strong_ref_spicy_rt__Sink__strong_refx2anamex2aspicy_rt__Sinkx2bx2b;
22
    extern const ::hilti::rt::TypeInfo _t_ti_spicy_rt__Sink_namex2aspicy_rt__Sinkx2b;
23
    extern const ::hilti::rt::TypeInfo _t_ti_spicy_rt__SinkState_libraryx2astd__shared_ptr_spicy__rt__sink__detail__State_x2b;
24
    extern const ::hilti::rt::TypeInfo _t_ti_tuple_bytes__bytes__tuplex2abytes_bytes_x2b;
25
    extern const ::hilti::rt::TypeInfo _t_ti_HTTP__Chunks_namex2aHTTP__Chunksx2b;
26
    extern const ::hilti::rt::TypeInfo _t_ti_HTTP__Chunk_namex2aHTTP__Chunkx2b;
27
    extern const ::hilti::rt::TypeInfo _t_ti_HTTP__Content_namex2aHTTP__Contentx2b;
28
    extern const ::hilti::rt::TypeInfo _t_ti_HTTP__Version_namex2aHTTP__Versionx2b;
29
    extern const ::hilti::rt::TypeInfo _t_ti_HTTP__ReplyLine_namex2aHTTP__ReplyLinex2b;
30
    extern const ::hilti::rt::TypeInfo _t_ti_HTTP__Reply_namex2aHTTP__Replyx2b;
31
    extern const ::hilti::rt::TypeInfo _t_ti_value_ref_Message__value_refx2anamex2aHTTP__Messagex2bx2b;
32
    extern const ::hilti::rt::TypeInfo _t_ti_HTTP__Replies_namex2aHTTP__Repliesx2b;
33
    extern const ::hilti::rt::TypeInfo _t_ti_value_ref_HTTP__Replies__value_refx2anamex2aHTTP__Repliesx2bx2b;
34
    extern const ::hilti::rt::TypeInfo _t_ti_HTTP__RequestLine_namex2aHTTP__RequestLinex2b;
35
    extern const ::hilti::rt::TypeInfo _t_ti_HTTP__Request_namex2aHTTP__Requestx2b;
36
    extern const ::hilti::rt::TypeInfo _t_ti_HTTP__Requests_namex2aHTTP__Requestsx2b;
37
    extern const ::hilti::rt::TypeInfo _t_ti_value_ref_HTTP__Requests__value_refx2anamex2aHTTP__Requestsx2bx2b;
38
    extern const ::hilti::rt::TypeInfo _t_ti_strong_ref_const_HTTP__Body__strong_refx2anamex2aHTTP__Bodyx2bx2b;
39
    extern const ::hilti::rt::TypeInfo _t_ti_strong_ref_const_HTTP__Content__strong_refx2anamex2aHTTP__Contentx2bx2b;
40
    extern const ::hilti::rt::TypeInfo _t_ti_strong_ref_const_HTTP__Replies__strong_refx2anamex2aHTTP__Repliesx2bx2b;
41
    extern const ::hilti::rt::TypeInfo _t_ti_strong_ref_const_HTTP__Requests__strong_refx2anamex2aHTTP__Requestsx2bx2b;
42
} }
43
44
namespace hlt_internal_HTTP_Reply::HTTP {
45
    struct Message;
46
    struct Header;
47
    struct Chunks;
48
    struct Chunk;
49
    struct Body;
50
    struct Content;
51
}
52
53
namespace hlt_internal_HTTP_Reply::filter {
54
    struct Zlib;
55
}
56
57
namespace hlt_internal_HTTP_Reply::HTTP {
58
    struct Version;
59
    struct ReplyLine;
60
    struct Reply;
61
    struct Replies;
62
    struct RequestLine;
63
    struct Request;
64
    struct Requests;
65
    HILTI_RT_ENUM_TYPE(DeliveryMode, EndOfData = 0, Length = 1, Multipart = 2, Chunked = 3);
66
    struct Message : ::hilti::rt::trait::isStruct, hilti::rt::trait::hasParameters, ::hilti::rt::Controllable<Message> {
67
0
        auto _t_self() { return ::hilti::rt::ValueReference<Message>::self(this); }
68
        ::hilti::rt::Optional<::hilti::rt::Vector<::hilti::rt::ValueReference<Header>>> headers{};
69
        // ::hilti::rt::Optional<::hilti::rt::Bytes> end_of_hdr{};
70
        void _t_on_end_of_hdr();
71
        ::hilti::rt::Optional<::hilti::rt::ValueReference<Body>> body{};
72
        ::hilti::rt::Bool has_body{};
73
        // ::hilti::rt::Bool is_request{};
74
        ::hilti::rt::Optional<::hilti::rt::Bytes> content_encoding{};
75
        // ::hilti::rt::Bool use_content_length{};
76
        // ::hilti::rt::Optional<::hilti::rt::integer::safe<uint64_t>> body_len{};
77
        ::hilti::rt::Optional<::hilti::rt::integer::safe<uint64_t>> content_length{};
78
        ::hilti::rt::Tuple<::hilti::rt::Bytes, ::hilti::rt::Bytes> content_type{};
79
        ::hilti::rt::Optional<::hilti::rt::Bytes> content_type_parameter{};
80
        HTTP::DeliveryMode delivery_mode{};
81
        ::hilti::rt::Optional<::hilti::rt::Bytes> multipart_boundary{};
82
        ::hilti::rt::Optional<::hilti::rt::Bytes> transfer_encoding{};
83
        void _t_on_0x25_init();
84
        auto _t_parse_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>>;
85
        auto _t_parse_headers_5_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<Header>>& _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>>;
86
        auto _t_parse_HTTP__Message_5_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>>;
87
        ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error{};
88
        ::hilti::rt::Bool _t_p_body_default{};
89
        ::hilti::rt::Bool _t_p_is_request{};
90
        Message();
91
0
        Message(const Message&) = default;
92
0
        Message(Message&&) = default;
93
0
        Message& operator=(const Message&) = default;
94
0
        Message& operator=(Message&&) = default;
95
        explicit Message(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Vector<::hilti::rt::ValueReference<Header>>>> headers, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<Body>>> body, ::hilti::rt::Optional<::hilti::rt::Bool> has_body, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Bytes>> content_encoding, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::integer::safe<uint64_t>>> content_length, ::hilti::rt::Optional<::hilti::rt::Tuple<::hilti::rt::Bytes, ::hilti::rt::Bytes>> content_type, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Bytes>> content_type_parameter, ::hilti::rt::Optional<HTTP::DeliveryMode> delivery_mode, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Bytes>> multipart_boundary, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Bytes>> transfer_encoding);
96
        explicit Message(::hilti::rt::struct_::tag::Parameters, const ::hilti::rt::Bool& _t_p_body_default, const ::hilti::rt::Bool& _t_p_is_request);
97
98
0
        std::string __to_string() const {
99
0
            return "["s + "$headers=" + hilti::rt::to_string(headers) + ", "s + hilti::rt::to_string_for_print("$end_of_hdr=(optimized out)"_hs) + ", "s + "$body=" + hilti::rt::to_string(body) + ", "s + "$has_body=" + hilti::rt::to_string(has_body) + ", "s + hilti::rt::to_string_for_print("$is_request=(optimized out)"_hs) + ", "s + "$content_encoding=" + hilti::rt::to_string(content_encoding) + ", "s + hilti::rt::to_string_for_print("$use_content_length=(optimized out)"_hs) + ", "s + hilti::rt::to_string_for_print("$body_len=(optimized out)"_hs) + ", "s + "$content_length=" + hilti::rt::to_string(content_length) + ", "s + "$content_type=" + hilti::rt::to_string(content_type) + ", "s + "$content_type_parameter=" + hilti::rt::to_string(content_type_parameter) + ", "s + "$delivery_mode=" + hilti::rt::to_string(delivery_mode) + ", "s + "$multipart_boundary=" + hilti::rt::to_string(multipart_boundary) + ", "s + "$transfer_encoding=" + hilti::rt::to_string(transfer_encoding) + "]";
100
0
        }
101
    };
102
103
    struct Header : ::hilti::rt::trait::isStruct, hilti::rt::trait::hasParameters, ::hilti::rt::Controllable<Header> {
104
0
        auto _t_self() { return ::hilti::rt::ValueReference<Header>::self(this); }
105
        ::hilti::rt::Optional<::hilti::rt::Bytes> name{};
106
        ::hilti::rt::Optional<::hilti::rt::Bytes> content{};
107
        void _t_on_content();
108
        auto _t_parse_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>>;
109
        auto _t_parse_HTTP__Header_6_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>>;
110
        ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error{};
111
        ::hilti::rt::WeakReference<Message> _t_p_msg{};
112
        Header();
113
0
        Header(const Header&) = default;
114
0
        Header(Header&&) = default;
115
0
        Header& operator=(const Header&) = default;
116
        Header& operator=(Header&&) = default;
117
        explicit Header(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Bytes>> name, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Bytes>> content);
118
        explicit Header(::hilti::rt::struct_::tag::Parameters, ::hilti::rt::ValueReference<Message>& _t_p_msg);
119
120
0
        std::string __to_string() const {
121
0
            return "["s + "$name=" + hilti::rt::to_string(name) + ", "s + "$content=" + hilti::rt::to_string(content) + "]";
122
0
        }
123
    };
124
125
    struct Chunks : ::hilti::rt::trait::isStruct, hilti::rt::trait::hasParameters, ::hilti::rt::Controllable<Chunks> {
126
0
        auto _t_self() { return ::hilti::rt::ValueReference<Chunks>::self(this); }
127
        ::hilti::rt::Optional<::hilti::rt::Vector<::hilti::rt::ValueReference<Header>>> trailer{};
128
        void _t_on_trailer_foreach(const ::hilti::rt::ValueReference<Header>& _t_dd);
129
        auto _t_parse_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>>;
130
        auto _t_parse__anon_21_7_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>>;
131
        auto _t_parse_trailer_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::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<Header>>& _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>>;
132
        auto _t_parse_HTTP__Chunks_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::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>>;
133
        ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error{};
134
        ::hilti::rt::WeakReference<Body> _t_p_body{};
135
        ::hilti::rt::WeakReference<Message> _t_p_msg{};
136
        Chunks();
137
0
        Chunks(const Chunks&) = default;
138
0
        Chunks(Chunks&&) = default;
139
0
        Chunks& operator=(const Chunks&) = default;
140
        Chunks& operator=(Chunks&&) = default;
141
        explicit Chunks(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Vector<::hilti::rt::ValueReference<Header>>>> trailer);
142
        explicit Chunks(::hilti::rt::struct_::tag::Parameters, ::hilti::rt::ValueReference<Body>& _t_p_body, ::hilti::rt::ValueReference<Message>& _t_p_msg);
143
144
0
        std::string __to_string() const {
145
0
            return "["s + "$trailer=" + hilti::rt::to_string(trailer) + "]";
146
0
        }
147
    };
148
149
    struct Chunk : ::hilti::rt::trait::isStruct, hilti::rt::trait::hasParameters, ::hilti::rt::Controllable<Chunk> {
150
0
        auto _t_self() { return ::hilti::rt::ValueReference<Chunk>::self(this); }
151
        ::hilti::rt::Optional<::hilti::rt::integer::safe<uint64_t>> length{};
152
        // ::hilti::rt::Optional<::hilti::rt::Bytes> extension{};
153
        auto _t_parse_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>>;
154
        auto _t_parse_HTTP__Chunk_8_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>>;
155
        ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error{};
156
        ::hilti::rt::WeakReference<Body> _t_p_body{};
157
        Chunk();
158
0
        Chunk(const Chunk&) = default;
159
0
        Chunk(Chunk&&) = default;
160
0
        Chunk& operator=(const Chunk&) = default;
161
        Chunk& operator=(Chunk&&) = default;
162
        explicit Chunk(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::integer::safe<uint64_t>>> length);
163
        explicit Chunk(::hilti::rt::struct_::tag::Parameters, ::hilti::rt::ValueReference<Body>& _t_p_body);
164
165
0
        std::string __to_string() const {
166
0
            return "["s + "$length=" + hilti::rt::to_string(length) + ", "s + hilti::rt::to_string_for_print("$extension=(optimized out)"_hs) + "]";
167
0
        }
168
    };
169
170
    struct Body : ::hilti::rt::trait::isStruct, hilti::rt::trait::hasParameters, ::hilti::rt::Controllable<Body> {
171
0
        auto _t_self() { return ::hilti::rt::ValueReference<Body>::self(this); }
172
        void _t_on__anon_18_foreach(const ::hilti::rt::Bytes& _t_dd);
173
        ::hilti::rt::StrongReference<::spicy::rt::Sink> data{};
174
        void _t_on_0x25_init();
175
        void _t_on_0x25_done();
176
        void _t_on_0x25_error(const ::hilti::rt::String& _t_except);
177
        inline static ::spicy::rt::Parser _t_parser{};
178
        ::std::shared_ptr<spicy::rt::sink::detail::State> _t_sink{};
179
        auto _t_parse_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>>;
180
        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;
181
        static auto parse2(::hilti::rt::ValueReference<Body>& _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;
182
        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;
183
        auto _t_parse__anon_18_6_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, ::hilti::rt::stream::View _t_cur, ::hilti::rt::Bool _t_trim, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error, ::hilti::rt::Vector<::hilti::rt::Bytes>& _t_dst) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
184
        auto _t_parse_switch_6_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>>;
185
        auto _t_parse_HTTP__Body_6_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>>;
186
        ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error{};
187
        ::hilti::rt::WeakReference<Message> _t_p_msg{};
188
        HTTP::DeliveryMode _t_p_delivery_mode;
189
        ::hilti::rt::Bool _t_p_is_request{};
190
        Body();
191
0
        Body(const Body&) = default;
192
0
        Body(Body&&) = default;
193
0
        Body& operator=(const Body&) = default;
194
0
        Body& operator=(Body&&) = default;
195
        explicit Body(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::StrongReference<::spicy::rt::Sink>> data);
196
        explicit Body(::hilti::rt::struct_::tag::Parameters, ::hilti::rt::ValueReference<Message>& _t_p_msg, const HTTP::DeliveryMode& _t_p_delivery_mode, const ::hilti::rt::Bool& _t_p_is_request);
197
198
0
        std::string __to_string() const {
199
0
            return "["s + "$data=" + hilti::rt::to_string(data) + "]";
200
0
        }
201
    };
202
203
    struct Content : ::hilti::rt::trait::isStruct, hilti::rt::trait::hasParameters, ::hilti::rt::Controllable<Content> {
204
0
        auto _t_self() { return ::hilti::rt::ValueReference<Content>::self(this); }
205
        ::hilti::rt::Optional<::hilti::rt::Bytes> data{};
206
        void _t_on_data();
207
        // ::hilti::rt::Bool have_content{};
208
        inline static ::spicy::rt::Parser _t_parser{};
209
        ::std::shared_ptr<spicy::rt::sink::detail::State> _t_sink{};
210
        auto _t_parse_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, ::hilti::rt::stream::View _t_cur, ::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>>;
211
        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;
212
        static auto parse2(::hilti::rt::ValueReference<Content>& _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;
213
        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;
214
        auto _t_parse_HTTP__Content_stage2(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, ::hilti::rt::stream::View _t_cur, ::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>>;
215
        ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error{};
216
        ::hilti::rt::WeakReference<Message> _t_p_msg{};
217
        Content();
218
        Content(const Content&) = default;
219
0
        Content(Content&&) = default;
220
        Content& operator=(const Content&) = default;
221
        Content& operator=(Content&&) = default;
222
        explicit Content(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Bytes>> data);
223
        explicit Content(::hilti::rt::struct_::tag::Parameters, const ::hilti::rt::ValueReference<Message>& _t_p_msg);
224
225
0
        std::string __to_string() const {
226
0
            return "["s + "$data=" + hilti::rt::to_string(data) + ", "s + hilti::rt::to_string_for_print("$have_content=(optimized out)"_hs) + "]";
227
0
        }
228
    };
229
230
}
231
232
namespace hlt_internal_HTTP_Reply::filter {
233
    struct Zlib : ::hilti::rt::trait::isStruct, hilti::rt::trait::hasParameters, ::hilti::rt::Controllable<Zlib> {
234
        auto _t_self() { return ::hilti::rt::ValueReference<Zlib>::self(this); }
235
        void _t_on__anon_28(const ::hilti::rt::Bytes& _t_dd);
236
        ::spicy::rt::zlib::Stream z{};
237
        void _t_on_0x25_init();
238
        void _t_on_0x25_done();
239
        inline static ::spicy::rt::Parser _t_parser{};
240
        ::hilti::rt::WeakReference<::spicy::rt::filter::detail::Forward> _t_forward{};
241
        auto _t_parse_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>>;
242
        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;
243
        static auto parse2(::hilti::rt::ValueReference<Zlib>& _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;
244
        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;
245
        auto _t_parse_filter__Zlib_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>>;
246
        ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error{};
247
        ::hilti::rt::Optional<::hilti::rt::integer::safe<int64_t>> _t_p_window_bits;
248
        Zlib();
249
        Zlib(const Zlib&) = default;
250
0
        Zlib(Zlib&&) = default;
251
        Zlib& operator=(const Zlib&) = default;
252
        Zlib& operator=(Zlib&&) = default;
253
        explicit Zlib(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::spicy::rt::zlib::Stream> z);
254
        explicit Zlib(::hilti::rt::struct_::tag::Parameters, const ::hilti::rt::Optional<::hilti::rt::integer::safe<int64_t>>& _t_p_window_bits);
255
256
        std::string __to_string() const {
257
            return "["s + "$z=" + hilti::rt::to_string(z) + "]";
258
        }
259
    };
260
261
}
262
263
namespace hlt_internal_HTTP_Reply::HTTP {
264
    struct Version : ::hilti::rt::trait::isStruct, ::hilti::rt::Controllable<Version> {
265
0
        auto _t_self() { return ::hilti::rt::ValueReference<Version>::self(this); }
266
        // ::hilti::rt::Optional<::hilti::rt::Bytes> number{};
267
        auto _t_parse_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>>;
268
        auto _t_parse_HTTP__Version_5_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>>;
269
        ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error{};
270
        Version();
271
        Version(const Version&) = default;
272
0
        Version(Version&&) = default;
273
        Version& operator=(const Version&) = default;
274
0
        Version& operator=(Version&&) = default;
275
276
0
        std::string __to_string() const {
277
0
            return "["s + hilti::rt::to_string_for_print("$number=(optimized out)"_hs) + "]";
278
0
        }
279
    };
280
281
    struct ReplyLine : ::hilti::rt::trait::isStruct, ::hilti::rt::Controllable<ReplyLine> {
282
0
        auto _t_self() { return ::hilti::rt::ValueReference<ReplyLine>::self(this); }
283
        ::hilti::rt::Optional<Version> version{};
284
        ::hilti::rt::Optional<::hilti::rt::integer::safe<uint64_t>> status{};
285
        // ::hilti::rt::Optional<::hilti::rt::Bytes> reason{};
286
        auto _t_parse_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>>;
287
        auto _t_parse_HTTP__ReplyLine_3_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>>;
288
        ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error{};
289
        ReplyLine();
290
        ReplyLine(const ReplyLine&) = default;
291
0
        ReplyLine(ReplyLine&&) = default;
292
        ReplyLine& operator=(const ReplyLine&) = default;
293
0
        ReplyLine& operator=(ReplyLine&&) = default;
294
        explicit ReplyLine(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<Version>> version, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::integer::safe<uint64_t>>> status);
295
296
0
        std::string __to_string() const {
297
0
            return "["s + "$version=" + hilti::rt::to_string(version) + ", "s + "$status=" + hilti::rt::to_string(status) + ", "s + hilti::rt::to_string_for_print("$reason=(optimized out)"_hs) + "]";
298
0
        }
299
    };
300
301
    struct Reply : ::hilti::rt::trait::isStruct, ::hilti::rt::Controllable<Reply> {
302
0
        auto _t_self() { return ::hilti::rt::ValueReference<Reply>::self(this); }
303
        ::hilti::rt::Optional<ReplyLine> reply{};
304
        ::hilti::rt::Optional<::hilti::rt::ValueReference<Message>> message{};
305
        auto _t_parse_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>>;
306
        auto _t_parse_HTTP__Reply_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>>;
307
        ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error{};
308
        Reply();
309
        Reply(const Reply&) = default;
310
        Reply(Reply&&) = default;
311
        Reply& operator=(const Reply&) = default;
312
0
        Reply& operator=(Reply&&) = default;
313
        explicit Reply(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<ReplyLine>> reply, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<Message>>> message);
314
315
0
        std::string __to_string() const {
316
0
            return "["s + "$reply=" + hilti::rt::to_string(reply) + ", "s + "$message=" + hilti::rt::to_string(message) + "]";
317
0
        }
318
    };
319
320
    struct Replies : ::hilti::rt::trait::isStruct, ::hilti::rt::Controllable<Replies> {
321
0
        auto _t_self() { return ::hilti::rt::ValueReference<Replies>::self(this); }
322
        inline static ::spicy::rt::Parser _t_parser{};
323
        auto _t_parse_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>>;
324
        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;
325
        static auto parse2(::hilti::rt::ValueReference<Replies>& _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;
326
        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;
327
        auto _t_parse__anon_4_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::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
328
        auto _t_parse_HTTP__Replies_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>>;
329
        ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error{};
330
        Replies();
331
        Replies(const Replies&) = default;
332
0
        Replies(Replies&&) = default;
333
        Replies& operator=(const Replies&) = default;
334
        Replies& operator=(Replies&&) = default;
335
336
0
        std::string __to_string() const {
337
0
            return "["s +  + "]";
338
0
        }
339
    };
340
341
    struct RequestLine : ::hilti::rt::trait::isStruct, ::hilti::rt::Controllable<RequestLine> {
342
0
        auto _t_self() { return ::hilti::rt::ValueReference<RequestLine>::self(this); }
343
        // ::hilti::rt::Optional<::hilti::rt::Bytes> method{};
344
        // ::hilti::rt::Optional<::hilti::rt::Bytes> uri{};
345
        ::hilti::rt::Optional<Version> version{};
346
        auto _t_parse_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>>;
347
        auto _t_parse_HTTP__RequestLine_3_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>>;
348
        ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error{};
349
        RequestLine();
350
        RequestLine(const RequestLine&) = default;
351
0
        RequestLine(RequestLine&&) = default;
352
        RequestLine& operator=(const RequestLine&) = default;
353
0
        RequestLine& operator=(RequestLine&&) = default;
354
        explicit RequestLine(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<Version>> version);
355
356
0
        std::string __to_string() const {
357
0
            return "["s + hilti::rt::to_string_for_print("$method=(optimized out)"_hs) + ", "s + hilti::rt::to_string_for_print("$uri=(optimized out)"_hs) + ", "s + "$version=" + hilti::rt::to_string(version) + "]";
358
0
        }
359
    };
360
361
    struct Request : ::hilti::rt::trait::isStruct, ::hilti::rt::Controllable<Request> {
362
0
        auto _t_self() { return ::hilti::rt::ValueReference<Request>::self(this); }
363
        ::hilti::rt::Optional<RequestLine> request{};
364
        ::hilti::rt::Optional<::hilti::rt::ValueReference<Message>> message{};
365
        auto _t_parse_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>>;
366
        auto _t_parse_HTTP__Request_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>>;
367
        ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error{};
368
        Request();
369
        Request(const Request&) = default;
370
        Request(Request&&) = default;
371
        Request& operator=(const Request&) = default;
372
0
        Request& operator=(Request&&) = default;
373
        explicit Request(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<RequestLine>> request, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<Message>>> message);
374
375
0
        std::string __to_string() const {
376
0
            return "["s + "$request=" + hilti::rt::to_string(request) + ", "s + "$message=" + hilti::rt::to_string(message) + "]";
377
0
        }
378
    };
379
380
    struct Requests : ::hilti::rt::trait::isStruct, ::hilti::rt::Controllable<Requests> {
381
0
        auto _t_self() { return ::hilti::rt::ValueReference<Requests>::self(this); }
382
        inline static ::spicy::rt::Parser _t_parser{};
383
        auto _t_parse_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>>;
384
        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;
385
        static auto parse2(::hilti::rt::ValueReference<Requests>& _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;
386
        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;
387
        auto _t_parse__anon_2_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::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>>;
388
        auto _t_parse_HTTP__Requests_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>>;
389
        ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error{};
390
        Requests();
391
        Requests(const Requests&) = default;
392
0
        Requests(Requests&&) = default;
393
        Requests& operator=(const Requests&) = default;
394
        Requests& operator=(Requests&&) = default;
395
396
0
        std::string __to_string() const {
397
0
            return "["s +  + "]";
398
0
        }
399
    };
400
401
    const ::hilti::rt::RegExp FullLine = ::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"[^\\r\\n]*\\r?\\n", false, 0}}, {}};
402
    const ::hilti::rt::RegExp _t_ctor__regexp_14 = ::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"[^\\r\\n]*\\r?\\n", false, 0}}, {}};
403
    const ::hilti::rt::RegExp _t_ctor__regexp_10 = ::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"[^\\r\\n]*", false, 0}}, {}};
404
    const ::hilti::rt::RegExp _t_ctor__regexp_15 = ::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"[0-9a-zA-Z]+", false, 0}}, {}};
405
    const ::hilti::rt::RegExp _t_ctor__regexp_7 = ::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"\\r?\\n", false, 0}}, {}};
406
    const ::hilti::rt::RegExp _t_ctor__regexp_9 = ::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"[ \\t]*", false, 0}}, {}};
407
    const ::hilti::rt::RegExp _t_ctor__regexp_11 = ::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"\\r?\\n", false, 1}, ::hilti::rt::regexp::Pattern{"[^:\\r\\n]+", false, 2}}, {.no_sub = true}};
408
    const ::hilti::rt::RegExp _t_ctor__regexp_12 = ::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"[^:\\r\\n]+", false, 0}}, {}};
409
    const ::hilti::rt::RegExp _t_ctor__regexp_13 = ::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{":[\\t ]*", false, 0}}, {}};
410
    const ::hilti::rt::RegExp _t_ctor__regexp_2 = ::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"HTTP/", false, 4}}, {.no_sub = true}};
411
    const ::hilti::rt::RegExp _t_ctor__regexp_6 = ::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"[ \\t]+", false, 0}}, {}};
412
    const ::hilti::rt::RegExp _t_ctor__regexp_8 = ::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"[0-9]+", false, 0}}, {}};
413
    const ::hilti::rt::RegExp _t_ctor__regexp_5 = ::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"[^ \\t\\r\\n]+", false, 0}}, {}};
414
    const ::hilti::rt::RegExp _t_ctor__regexp = ::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"[^ \\t\\r\\n]+", false, 3}}, {.no_sub = true}};
415
    const ::hilti::rt::RegExp _t_ctor__regexp_3 = ::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"HTTP/", false, 0}}, {}};
416
    const ::hilti::rt::RegExp _t_ctor__regexp_4 = ::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"[0-9]+\\.[0-9]*", false, 0}}, {}};
417
    const ::hilti::rt::RegExp HeaderName = ::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"[^:\\r\\n]+", false, 0}}, {}};
418
    const ::hilti::rt::RegExp HeaderValue = ::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"[^\\r\\n]*", false, 0}}, {}};
419
    const ::hilti::rt::RegExp HexInteger = ::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"[0-9a-zA-Z]+", false, 0}}, {}};
420
    const ::hilti::rt::RegExp Integer = ::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"[0-9]+", false, 0}}, {}};
421
    const ::hilti::rt::RegExp NewLine = ::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"\\r?\\n", false, 0}}, {}};
422
    const ::hilti::rt::RegExp OptionalWhiteSpace = ::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"[ \\t]*", false, 0}}, {}};
423
    const ::hilti::rt::RegExp RestOfLine = ::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"[^\\r\\n]*", false, 0}}, {}};
424
    const ::hilti::rt::RegExp Token = ::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"[^ \\t\\r\\n]+", false, 0}}, {}};
425
    const ::hilti::rt::RegExp URI = ::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"[^ \\t\\r\\n]+", false, 0}}, {}};
426
    const ::hilti::rt::RegExp WhiteSpace = ::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"[ \\t]+", false, 0}}, {}};
427
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Body0x25is_filter = ::hilti::rt::Bool{false};
428
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Body0x25supports_filters = ::hilti::rt::Bool{false};
429
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Body0x25supports_sinks = ::hilti::rt::Bool{true};
430
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Body0x25synchronization = ::hilti::rt::Bool{false};
431
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Body0x25uses_offset = ::hilti::rt::Bool{false};
432
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Body0x25uses_random_access = ::hilti::rt::Bool{false};
433
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Body0x25uses_stream = ::hilti::rt::Bool{false};
434
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Body0x25uses_sync_advance = ::hilti::rt::Bool{false};
435
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Chunk0x25is_filter = ::hilti::rt::Bool{false};
436
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Chunk0x25supports_filters = ::hilti::rt::Bool{false};
437
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Chunk0x25supports_sinks = ::hilti::rt::Bool{false};
438
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Chunk0x25synchronization = ::hilti::rt::Bool{false};
439
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Chunk0x25uses_offset = ::hilti::rt::Bool{false};
440
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Chunk0x25uses_random_access = ::hilti::rt::Bool{false};
441
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Chunk0x25uses_stream = ::hilti::rt::Bool{false};
442
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Chunk0x25uses_sync_advance = ::hilti::rt::Bool{false};
443
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Chunks0x25is_filter = ::hilti::rt::Bool{false};
444
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Chunks0x25supports_filters = ::hilti::rt::Bool{false};
445
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Chunks0x25supports_sinks = ::hilti::rt::Bool{false};
446
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Chunks0x25synchronization = ::hilti::rt::Bool{false};
447
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Chunks0x25uses_offset = ::hilti::rt::Bool{false};
448
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Chunks0x25uses_random_access = ::hilti::rt::Bool{false};
449
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Chunks0x25uses_stream = ::hilti::rt::Bool{false};
450
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Chunks0x25uses_sync_advance = ::hilti::rt::Bool{false};
451
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Content0x25is_filter = ::hilti::rt::Bool{false};
452
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Content0x25supports_filters = ::hilti::rt::Bool{false};
453
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Content0x25supports_sinks = ::hilti::rt::Bool{true};
454
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Content0x25synchronization = ::hilti::rt::Bool{false};
455
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Content0x25uses_offset = ::hilti::rt::Bool{false};
456
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Content0x25uses_random_access = ::hilti::rt::Bool{false};
457
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Content0x25uses_stream = ::hilti::rt::Bool{false};
458
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Content0x25uses_sync_advance = ::hilti::rt::Bool{false};
459
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Header0x25is_filter = ::hilti::rt::Bool{false};
460
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Header0x25supports_filters = ::hilti::rt::Bool{false};
461
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Header0x25supports_sinks = ::hilti::rt::Bool{false};
462
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Header0x25synchronization = ::hilti::rt::Bool{false};
463
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Header0x25uses_offset = ::hilti::rt::Bool{false};
464
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Header0x25uses_random_access = ::hilti::rt::Bool{false};
465
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Header0x25uses_stream = ::hilti::rt::Bool{false};
466
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Header0x25uses_sync_advance = ::hilti::rt::Bool{false};
467
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Message0x25is_filter = ::hilti::rt::Bool{false};
468
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Message0x25supports_filters = ::hilti::rt::Bool{false};
469
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Message0x25supports_sinks = ::hilti::rt::Bool{false};
470
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Message0x25synchronization = ::hilti::rt::Bool{false};
471
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Message0x25uses_offset = ::hilti::rt::Bool{false};
472
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Message0x25uses_random_access = ::hilti::rt::Bool{false};
473
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Message0x25uses_stream = ::hilti::rt::Bool{false};
474
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Message0x25uses_sync_advance = ::hilti::rt::Bool{false};
475
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Replies0x25is_filter = ::hilti::rt::Bool{false};
476
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Replies0x25supports_filters = ::hilti::rt::Bool{false};
477
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Replies0x25supports_sinks = ::hilti::rt::Bool{false};
478
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Replies0x25synchronization = ::hilti::rt::Bool{false};
479
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Replies0x25uses_offset = ::hilti::rt::Bool{false};
480
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Replies0x25uses_random_access = ::hilti::rt::Bool{false};
481
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Replies0x25uses_stream = ::hilti::rt::Bool{false};
482
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Replies0x25uses_sync_advance = ::hilti::rt::Bool{false};
483
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Reply0x25is_filter = ::hilti::rt::Bool{false};
484
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Reply0x25supports_filters = ::hilti::rt::Bool{false};
485
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Reply0x25supports_sinks = ::hilti::rt::Bool{false};
486
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Reply0x25synchronization = ::hilti::rt::Bool{false};
487
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Reply0x25uses_offset = ::hilti::rt::Bool{false};
488
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Reply0x25uses_random_access = ::hilti::rt::Bool{false};
489
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Reply0x25uses_stream = ::hilti::rt::Bool{false};
490
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Reply0x25uses_sync_advance = ::hilti::rt::Bool{false};
491
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40ReplyLine0x25is_filter = ::hilti::rt::Bool{false};
492
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40ReplyLine0x25supports_filters = ::hilti::rt::Bool{false};
493
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40ReplyLine0x25supports_sinks = ::hilti::rt::Bool{false};
494
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40ReplyLine0x25synchronization = ::hilti::rt::Bool{false};
495
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40ReplyLine0x25uses_offset = ::hilti::rt::Bool{false};
496
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40ReplyLine0x25uses_random_access = ::hilti::rt::Bool{false};
497
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40ReplyLine0x25uses_stream = ::hilti::rt::Bool{false};
498
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40ReplyLine0x25uses_sync_advance = ::hilti::rt::Bool{false};
499
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Request0x25is_filter = ::hilti::rt::Bool{false};
500
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Request0x25supports_filters = ::hilti::rt::Bool{false};
501
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Request0x25supports_sinks = ::hilti::rt::Bool{false};
502
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Request0x25synchronization = ::hilti::rt::Bool{false};
503
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Request0x25uses_offset = ::hilti::rt::Bool{false};
504
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Request0x25uses_random_access = ::hilti::rt::Bool{false};
505
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Request0x25uses_stream = ::hilti::rt::Bool{false};
506
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Request0x25uses_sync_advance = ::hilti::rt::Bool{false};
507
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40RequestLine0x25is_filter = ::hilti::rt::Bool{false};
508
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40RequestLine0x25supports_filters = ::hilti::rt::Bool{false};
509
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40RequestLine0x25supports_sinks = ::hilti::rt::Bool{false};
510
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40RequestLine0x25synchronization = ::hilti::rt::Bool{false};
511
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40RequestLine0x25uses_offset = ::hilti::rt::Bool{false};
512
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40RequestLine0x25uses_random_access = ::hilti::rt::Bool{false};
513
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40RequestLine0x25uses_stream = ::hilti::rt::Bool{false};
514
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40RequestLine0x25uses_sync_advance = ::hilti::rt::Bool{false};
515
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Requests0x25is_filter = ::hilti::rt::Bool{false};
516
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Requests0x25supports_filters = ::hilti::rt::Bool{false};
517
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Requests0x25supports_sinks = ::hilti::rt::Bool{false};
518
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Requests0x25synchronization = ::hilti::rt::Bool{false};
519
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Requests0x25uses_offset = ::hilti::rt::Bool{false};
520
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Requests0x25uses_random_access = ::hilti::rt::Bool{false};
521
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Requests0x25uses_stream = ::hilti::rt::Bool{false};
522
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Requests0x25uses_sync_advance = ::hilti::rt::Bool{false};
523
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Version0x25is_filter = ::hilti::rt::Bool{false};
524
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Version0x25supports_filters = ::hilti::rt::Bool{false};
525
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Version0x25supports_sinks = ::hilti::rt::Bool{false};
526
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Version0x25synchronization = ::hilti::rt::Bool{false};
527
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Version0x25uses_offset = ::hilti::rt::Bool{false};
528
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Version0x25uses_random_access = ::hilti::rt::Bool{false};
529
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Version0x25uses_stream = ::hilti::rt::Bool{false};
530
    const ::hilti::rt::Bool _t_feat0x25HTTP0x400x40Version0x25uses_sync_advance = ::hilti::rt::Bool{false};
531
}
532
533
namespace hlt_HTTP_Reply::HTTP::Replies {
534
    using Type = hlt_internal_HTTP_Reply::HTTP::Replies;
535
}
536
537
namespace hlt_HTTP_Reply::HTTP::Requests {
538
    using Type = hlt_internal_HTTP_Reply::HTTP::Requests;
539
}
540
541
namespace hilti::rt::detail::adl {
542
    inline auto to_string(hlt_internal_HTTP_Reply::HTTP::DeliveryMode x, adl::tag) -> std::string;
543
}
544
545
namespace hlt_internal_HTTP_Reply::HTTP {
546
    inline auto operator<<(std::ostream& o, DeliveryMode x) -> std::ostream&;
547
    extern auto operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::HTTP::Message& x) -> std::ostream&;
548
    extern auto operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::HTTP::Header& x) -> std::ostream&;
549
    extern void _t_hook_Message__t_on_end_of_hdr(::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Message>& _t_self);
550
    extern auto operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::HTTP::Body& x) -> std::ostream&;
551
    extern void _t_hook_Message__t_on_0x25_init(::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Message>& _t_self);
552
0
    Message::Message() {
553
0
    }
554
555
0
    Message::Message(::hilti::rt::struct_::tag::Parameters, const ::hilti::rt::Bool& _t_p_body_default, const ::hilti::rt::Bool& _t_p_is_request) : _t_p_body_default(_t_p_body_default), _t_p_is_request(_t_p_is_request) {
556
0
    {
557
0
        content_type = ::hilti::rt::tuple::make_from_optionals(::hilti::rt::optional::make("TEXT"_b), ::hilti::rt::optional::make("PLAIN"_b));
558
0
        delivery_mode = HTTP::DeliveryMode{HTTP::DeliveryMode::EndOfData};
559
0
    }
560
0
    }
561
562
0
    Message::Message(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Vector<::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Header>>>> headers, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Body>>> body, ::hilti::rt::Optional<::hilti::rt::Bool> has_body, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Bytes>> content_encoding, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::integer::safe<uint64_t>>> content_length, ::hilti::rt::Optional<::hilti::rt::Tuple<::hilti::rt::Bytes, ::hilti::rt::Bytes>> content_type, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Bytes>> content_type_parameter, ::hilti::rt::Optional<HTTP::DeliveryMode> delivery_mode, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Bytes>> multipart_boundary, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Bytes>> transfer_encoding) : Message() {
563
0
        if ( headers ) this->headers = std::move(*headers);
564
0
        if ( body ) this->body = std::move(*body);
565
0
        if ( has_body ) this->has_body = std::move(*has_body);
566
0
        if ( content_encoding ) this->content_encoding = std::move(*content_encoding);
567
0
        if ( content_length ) this->content_length = std::move(*content_length);
568
0
        if ( content_type ) this->content_type = std::move(*content_type);
569
0
        if ( content_type_parameter ) this->content_type_parameter = std::move(*content_type_parameter);
570
0
        if ( delivery_mode ) this->delivery_mode = std::move(*delivery_mode);
571
0
        if ( multipart_boundary ) this->multipart_boundary = std::move(*multipart_boundary);
572
0
        if ( transfer_encoding ) this->transfer_encoding = std::move(*transfer_encoding);
573
0
    }
574
575
    
576
    extern void _t_hook_Header__t_on_content(::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Header>& _t_self);
577
0
    Header::Header() {
578
0
    }
579
580
0
    Header::Header(::hilti::rt::struct_::tag::Parameters, ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Message>& _t_p_msg) : _t_p_msg(_t_p_msg) {
581
0
    }
582
583
0
    Header::Header(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Bytes>> name, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Bytes>> content) : Header() {
584
0
        if ( name ) this->name = std::move(*name);
585
0
        if ( content ) this->content = std::move(*content);
586
0
    }
587
588
    
589
    extern auto operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::HTTP::Chunks& x) -> std::ostream&;
590
    extern auto operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::HTTP::Chunk& x) -> std::ostream&;
591
    extern void _t_hook_Chunks__t_on_trailer_foreach(const ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Header>& _t_dd, ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Chunks>& _t_self);
592
0
    Chunks::Chunks() {
593
0
    }
594
595
0
    Chunks::Chunks(::hilti::rt::struct_::tag::Parameters, ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Body>& _t_p_body, ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Message>& _t_p_msg) : _t_p_body(_t_p_body), _t_p_msg(_t_p_msg) {
596
0
    }
597
598
0
    Chunks::Chunks(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Vector<::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Header>>>> trailer) : Chunks() {
599
0
        if ( trailer ) this->trailer = std::move(*trailer);
600
0
    }
601
602
    
603
0
    Chunk::Chunk() {
604
0
    }
605
606
0
    Chunk::Chunk(::hilti::rt::struct_::tag::Parameters, ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Body>& _t_p_body) : _t_p_body(_t_p_body) {
607
0
    }
608
609
0
    Chunk::Chunk(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::integer::safe<uint64_t>>> length) : Chunk() {
610
0
        if ( length ) this->length = std::move(*length);
611
0
    }
612
613
    
614
    extern void _t_hook_Body__t_on__anon_18_foreach(const ::hilti::rt::Bytes& _t_dd, ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Body>& _t_self);
615
    extern void _t_hook_Body__t_on_0x25_init(::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Body>& _t_self);
616
    extern void _t_hook_Body__t_on_0x25_done(::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Body>& _t_self);
617
    extern void _t_hook_Body__t_on_0x25_error(const ::hilti::rt::String& _t_except, ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Body>& _t_self);
618
0
    Body::Body() {
619
0
        _t_p_delivery_mode = HTTP::DeliveryMode::Undef;
620
0
    }
621
622
0
    Body::Body(::hilti::rt::struct_::tag::Parameters, ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Message>& _t_p_msg, const HTTP::DeliveryMode& _t_p_delivery_mode, const ::hilti::rt::Bool& _t_p_is_request) : _t_p_msg(_t_p_msg), _t_p_delivery_mode(_t_p_delivery_mode), _t_p_is_request(_t_p_is_request) {
623
0
        data = ::hilti::rt::reference::make_strong<::spicy::rt::Sink>();
624
0
    }
625
626
0
    Body::Body(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::StrongReference<::spicy::rt::Sink>> data) : Body() {
627
0
        if ( data ) this->data = std::move(*data);
628
0
    }
629
630
    
631
    extern auto operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::HTTP::Content& x) -> std::ostream&;
632
    extern void _t_hook_Content__t_on_data(::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Content>& _t_self);
633
0
    Content::Content() {
634
0
    }
635
636
0
    Content::Content(::hilti::rt::struct_::tag::Parameters, const ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Message>& _t_p_msg) : _t_p_msg(_t_p_msg) {
637
0
    }
638
639
0
    Content::Content(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::Bytes>> data) : Content() {
640
0
        if ( data ) this->data = std::move(*data);
641
0
    }
642
643
    
644
    extern void _t_hook_Body__t_on_0x25_done_14722512847394215849(::hilti::rt::ValueReference<Body>& _t_self);
645
    extern void _t_hook_Body__t_on_0x25_done(::hilti::rt::ValueReference<Body>& _t_self);
646
    extern void _t_hook_Body__t_on_0x25_done_14722512847394215849(::hilti::rt::ValueReference<Body>& _t_self);
647
    extern void _t_hook_Body__t_on_0x25_error_18155171557293147693(const ::hilti::rt::String& _t_except, ::hilti::rt::ValueReference<Body>& _t_self);
648
    extern void _t_hook_Body__t_on_0x25_error(const ::hilti::rt::String& _t_except, ::hilti::rt::ValueReference<Body>& _t_self);
649
    extern void _t_hook_Body__t_on_0x25_error_18155171557293147693(const ::hilti::rt::String& _t_except, ::hilti::rt::ValueReference<Body>& _t_self);
650
}
651
652
namespace hlt_internal_HTTP_Reply::filter {
653
    extern auto operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::filter::Zlib& x) -> std::ostream&;
654
    extern void _t_hook_Zlib__t_on__anon_28(const ::hilti::rt::Bytes& _t_dd, ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::filter::Zlib>& _t_self);
655
    extern void _t_hook_Zlib__t_on_0x25_init(::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::filter::Zlib>& _t_self);
656
    extern void _t_hook_Zlib__t_on_0x25_done(::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::filter::Zlib>& _t_self);
657
}
658
659
namespace hlt_internal_HTTP_Reply::HTTP {
660
    extern void _t_hook_Body__t_on_0x25_init_731939298784154376(::hilti::rt::ValueReference<Body>& _t_self);
661
    extern void _t_hook_Body__t_on_0x25_init(::hilti::rt::ValueReference<Body>& _t_self);
662
    extern void _t_hook_Body__t_on_0x25_init_731939298784154376(::hilti::rt::ValueReference<Body>& _t_self);
663
    extern void _t_hook_Body__t_on__anon_18_foreach_5136231824764224079(const ::hilti::rt::Bytes& _t_dd, ::hilti::rt::ValueReference<Body>& _t_self);
664
    extern void _t_hook_Body__t_on__anon_18_foreach(const ::hilti::rt::Bytes& _t_dd, ::hilti::rt::ValueReference<Body>& _t_self);
665
    extern void _t_hook_Body__t_on__anon_18_foreach_5136231824764224079(const ::hilti::rt::Bytes& _t_dd, ::hilti::rt::ValueReference<Body>& _t_self);
666
}
667
668
namespace hlt_HTTP_Reply::HTTP::Body {
669
    auto parse2(::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Body>& _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;
670
}
671
672
namespace hlt_internal_HTTP_Reply::HTTP {
673
    extern void _t_hook_Chunks__t_on_trailer_foreach_11937523771540963620(const ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Header>& _t_dd, ::hilti::rt::ValueReference<Chunks>& _t_self);
674
    extern void _t_hook_Chunks__t_on_trailer_foreach(const ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Header>& _t_dd, ::hilti::rt::ValueReference<Chunks>& _t_self);
675
    extern void _t_hook_Chunks__t_on_trailer_foreach_11937523771540963620(const ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Header>& _t_dd, ::hilti::rt::ValueReference<Chunks>& _t_self);
676
    extern void _t_hook_Content__t_on_data_6301994640972939018(::hilti::rt::ValueReference<Content>& _t_self);
677
    extern void _t_hook_Content__t_on_data(::hilti::rt::ValueReference<Content>& _t_self);
678
    extern void _t_hook_Content__t_on_data_6301994640972939018(::hilti::rt::ValueReference<Content>& _t_self);
679
}
680
681
namespace hlt_HTTP_Reply::HTTP::Content {
682
    auto parse2(::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Content>& _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;
683
}
684
685
namespace hlt_internal_HTTP_Reply::HTTP {
686
    extern void _t_hook_Header__t_on_content_9269554996284748180(::hilti::rt::ValueReference<Header>& _t_self);
687
    extern void _t_hook_Header__t_on_content(::hilti::rt::ValueReference<Header>& _t_self);
688
    extern void _t_hook_Header__t_on_content_9269554996284748180(::hilti::rt::ValueReference<Header>& _t_self);
689
    extern void _t_hook_Message__t_on_0x25_init_5738243580247591922(::hilti::rt::ValueReference<Message>& _t_self);
690
    extern void _t_hook_Message__t_on_0x25_init(::hilti::rt::ValueReference<Message>& _t_self);
691
    extern void _t_hook_Message__t_on_0x25_init_5738243580247591922(::hilti::rt::ValueReference<Message>& _t_self);
692
    extern void _t_hook_Message__t_on_end_of_hdr_14883065431382725603(::hilti::rt::ValueReference<Message>& _t_self);
693
    extern void _t_hook_Message__t_on_end_of_hdr(::hilti::rt::ValueReference<Message>& _t_self);
694
    extern void _t_hook_Message__t_on_end_of_hdr_14883065431382725603(::hilti::rt::ValueReference<Message>& _t_self);
695
    extern auto operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::HTTP::Version& x) -> std::ostream&;
696
0
    Version::Version() {
697
0
    }
698
699
    
700
    extern auto operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::HTTP::ReplyLine& x) -> std::ostream&;
701
0
    ReplyLine::ReplyLine() {
702
0
    }
703
704
0
    ReplyLine::ReplyLine(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<hlt_internal_HTTP_Reply::HTTP::Version>> version, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::integer::safe<uint64_t>>> status) : ReplyLine() {
705
0
        if ( version ) this->version = std::move(*version);
706
0
        if ( status ) this->status = std::move(*status);
707
0
    }
708
709
    
710
    extern auto operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::HTTP::Reply& x) -> std::ostream&;
711
0
    Reply::Reply() {
712
0
    }
713
714
0
    Reply::Reply(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<hlt_internal_HTTP_Reply::HTTP::ReplyLine>> reply, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Message>>> message) : Reply() {
715
0
        if ( reply ) this->reply = std::move(*reply);
716
0
        if ( message ) this->message = std::move(*message);
717
0
    }
718
719
    
720
    extern auto operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::HTTP::Replies& x) -> std::ostream&;
721
0
    Replies::Replies() {
722
0
    }
723
724
    
725
}
726
727
namespace hlt_HTTP_Reply::HTTP::Replies {
728
    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;
729
    auto parse2(::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Replies>& _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;
730
    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;
731
}
732
733
namespace hlt_internal_HTTP_Reply::HTTP {
734
    static auto reply_code_needs_body(const ::hilti::rt::integer::safe<uint64_t>& status) -> ::hilti::rt::Bool;
735
    extern auto operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::HTTP::RequestLine& x) -> std::ostream&;
736
0
    RequestLine::RequestLine() {
737
0
    }
738
739
0
    RequestLine::RequestLine(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<hlt_internal_HTTP_Reply::HTTP::Version>> version) : RequestLine() {
740
0
        if ( version ) this->version = std::move(*version);
741
0
    }
742
743
    
744
    extern auto operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::HTTP::Request& x) -> std::ostream&;
745
0
    Request::Request() {
746
0
    }
747
748
0
    Request::Request(::hilti::rt::struct_::tag::Inits, ::hilti::rt::Optional<::hilti::rt::Optional<hlt_internal_HTTP_Reply::HTTP::RequestLine>> request, ::hilti::rt::Optional<::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Message>>> message) : Request() {
749
0
        if ( request ) this->request = std::move(*request);
750
0
        if ( message ) this->message = std::move(*message);
751
0
    }
752
753
    
754
    extern auto operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::HTTP::Requests& x) -> std::ostream&;
755
0
    Requests::Requests() {
756
0
    }
757
758
    
759
}
760
761
namespace hlt_HTTP_Reply::HTTP::Requests {
762
    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;
763
    auto parse2(::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Requests>& _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;
764
    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;
765
}
766
767
namespace hlt_internal_HTTP_Reply::HTTP {
768
    extern void _t_register_HTTP_Body();
769
    extern void _t_register_HTTP_Chunk();
770
    extern void _t_register_HTTP_Chunks();
771
    extern void _t_register_HTTP_Content();
772
    extern void _t_register_HTTP_Header();
773
    extern void _t_register_HTTP_Message();
774
    extern void _t_register_HTTP_Replies();
775
    extern void _t_register_HTTP_Reply();
776
    extern void _t_register_HTTP_ReplyLine();
777
    extern void _t_register_HTTP_Request();
778
    extern void _t_register_HTTP_RequestLine();
779
    extern void _t_register_HTTP_Requests();
780
    extern void _t_register_HTTP_Version();
781
    extern void _t_init_module();
782
    extern void _t_register_module();
783
}
784
785
namespace hlt_internal_HTTP_Reply::type_info { namespace {
786
0
    const ::hilti::rt::TypeInfo _t_ti_HTTP__DeliveryMode_namex2aHTTP__DeliveryModex2b = { "HTTP::DeliveryMode", "HTTP::DeliveryMode", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const HTTP::DeliveryMode*>(self)); }, new ::hilti::rt::type_info::Enum(std::vector<::hilti::rt::type_info::enum_::Label>({::hilti::rt::type_info::enum_::Label{ "EndOfData", 0 }, ::hilti::rt::type_info::enum_::Label{ "Length", 1 }, ::hilti::rt::type_info::enum_::Label{ "Multipart", 2 }, ::hilti::rt::type_info::enum_::Label{ "Chunked", 3 }, ::hilti::rt::type_info::enum_::Label{ "Undef", -1 }})) };
787
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() };
788
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>()) };
789
0
    const ::hilti::rt::TypeInfo _t_ti_HTTP__Header_namex2aHTTP__Headerx2b = { "HTTP::Header", "HTTP::Header", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const hlt_internal_HTTP_Reply::HTTP::Header*>(self)); }, new ::hilti::rt::type_info::Struct(std::vector<::hilti::rt::type_info::struct_::Field>({::hilti::rt::type_info::struct_::Field{ "name", &::hilti::rt::type_info::bytes, static_cast<std::ptrdiff_t>(offsetof(HTTP::Header, name)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::Bytes>() }, ::hilti::rt::type_info::struct_::Field{ "content", &::hilti::rt::type_info::bytes, static_cast<std::ptrdiff_t>(offsetof(HTTP::Header, content)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::Bytes>() }, ::hilti::rt::type_info::struct_::Field{ "_t_error", &type_info::_t_ti_optional_spicy__RecoverableFailure__optionalx2anamex2ahilti__RecoverableFailurex2bx2b, static_cast<std::ptrdiff_t>(offsetof(HTTP::Header, _t_error)), true, false, true }})) };
790
0
    const ::hilti::rt::TypeInfo _t_ti_value_ref_Header__value_refx2anamex2aHTTP__Headerx2bx2b = { {}, "value_ref<Header>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Header>*>(self)); }, new ::hilti::rt::type_info::ValueReference(&type_info::_t_ti_HTTP__Header_namex2aHTTP__Headerx2b, ::hilti::rt::type_info::ValueReference::accessor<hlt_internal_HTTP_Reply::HTTP::Header>()) };
791
0
    const ::hilti::rt::TypeInfo _t_ti_vector_value_ref_Header___vectorx2anamex2aHTTP__Headerx2bx2b = { {}, "vector<value_ref<Header>>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::Vector<::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Header>>*>(self)); }, new ::hilti::rt::type_info::Vector(&type_info::_t_ti_value_ref_Header__value_refx2anamex2aHTTP__Headerx2bx2b, ::hilti::rt::type_info::Vector::accessor<::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Header>>()) };
792
0
    const ::hilti::rt::TypeInfo _t_ti_spicy_rt__Sink_namex2aspicy_rt__Sinkx2b = { "spicy_rt::Sink", "spicy_rt::Sink", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::spicy::rt::Sink*>(self)); }, new ::hilti::rt::type_info::Struct(std::vector<::hilti::rt::type_info::struct_::Field>({})) };
793
0
    const ::hilti::rt::TypeInfo _t_ti_strong_ref_spicy_rt__Sink__strong_refx2anamex2aspicy_rt__Sinkx2bx2b = { {}, "strong_ref<spicy_rt::Sink>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::StrongReference<::spicy::rt::Sink>*>(self)); }, new ::hilti::rt::type_info::StrongReference(&type_info::_t_ti_spicy_rt__Sink_namex2aspicy_rt__Sinkx2b, ::hilti::rt::type_info::StrongReference::accessor<::spicy::rt::Sink>()) };
794
0
    const ::hilti::rt::TypeInfo _t_ti_spicy_rt__SinkState_libraryx2astd__shared_ptr_spicy__rt__sink__detail__State_x2b = { "spicy_rt::SinkState", "spicy_rt::SinkState", [](const void *self) { return "<::std::shared_ptr<spicy::rt::sink::detail::State>>"s; }, new ::hilti::rt::type_info::Library("::std::shared_ptr<spicy::rt::sink::detail::State>") };
795
0
    const ::hilti::rt::TypeInfo _t_ti_HTTP__Body_namex2aHTTP__Bodyx2b = { "HTTP::Body", "HTTP::Body", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const hlt_internal_HTTP_Reply::HTTP::Body*>(self)); }, new ::hilti::rt::type_info::Struct(std::vector<::hilti::rt::type_info::struct_::Field>({::hilti::rt::type_info::struct_::Field{ "data", &type_info::_t_ti_strong_ref_spicy_rt__Sink__strong_refx2anamex2aspicy_rt__Sinkx2bx2b, static_cast<std::ptrdiff_t>(offsetof(HTTP::Body, data)), true, false, true }, ::hilti::rt::type_info::struct_::Field{ "_t_sink", &type_info::_t_ti_spicy_rt__SinkState_libraryx2astd__shared_ptr_spicy__rt__sink__detail__State_x2b, static_cast<std::ptrdiff_t>(offsetof(HTTP::Body, _t_sink)), 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(HTTP::Body, _t_error)), true, false, true }})) };
796
0
    const ::hilti::rt::TypeInfo _t_ti_value_ref_Body__value_refx2anamex2aHTTP__Bodyx2bx2b = { {}, "value_ref<Body>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Body>*>(self)); }, new ::hilti::rt::type_info::ValueReference(&type_info::_t_ti_HTTP__Body_namex2aHTTP__Bodyx2b, ::hilti::rt::type_info::ValueReference::accessor<hlt_internal_HTTP_Reply::HTTP::Body>()) };
797
0
    const ::hilti::rt::TypeInfo _t_ti_tuple_bytes__bytes__tuplex2abytes_bytes_x2b = { {}, "tuple<bytes, bytes>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::Tuple<::hilti::rt::Bytes, ::hilti::rt::Bytes>*>(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::bytes, ::hilti::rt::Tuple<::hilti::rt::Bytes, ::hilti::rt::Bytes>::elementOffset<0>() }, ::hilti::rt::type_info::tuple::Element{ "", &::hilti::rt::type_info::bytes, ::hilti::rt::Tuple<::hilti::rt::Bytes, ::hilti::rt::Bytes>::elementOffset<1>() }})) };
798
0
    const ::hilti::rt::TypeInfo _t_ti_HTTP__Message_namex2aHTTP__Messagex2b = { "HTTP::Message", "HTTP::Message", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const hlt_internal_HTTP_Reply::HTTP::Message*>(self)); }, new ::hilti::rt::type_info::Struct(std::vector<::hilti::rt::type_info::struct_::Field>({::hilti::rt::type_info::struct_::Field{ "headers", &type_info::_t_ti_vector_value_ref_Header___vectorx2anamex2aHTTP__Headerx2bx2b, static_cast<std::ptrdiff_t>(offsetof(HTTP::Message, headers)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::Vector<::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Header>>>() }, ::hilti::rt::type_info::struct_::Field{ "end_of_hdr", &::hilti::rt::type_info::bytes, std::ptrdiff_t{-1}, false, false, false }, ::hilti::rt::type_info::struct_::Field{ "body", &type_info::_t_ti_value_ref_Body__value_refx2anamex2aHTTP__Bodyx2bx2b, static_cast<std::ptrdiff_t>(offsetof(HTTP::Message, body)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Body>>() }, ::hilti::rt::type_info::struct_::Field{ "has_body", &::hilti::rt::type_info::bool_, static_cast<std::ptrdiff_t>(offsetof(HTTP::Message, has_body)), false, false, true }, ::hilti::rt::type_info::struct_::Field{ "is_request", &::hilti::rt::type_info::bool_, std::ptrdiff_t{-1}, false, false, false }, ::hilti::rt::type_info::struct_::Field{ "content_encoding", &::hilti::rt::type_info::bytes, static_cast<std::ptrdiff_t>(offsetof(HTTP::Message, content_encoding)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::Bytes>() }, ::hilti::rt::type_info::struct_::Field{ "use_content_length", &::hilti::rt::type_info::bool_, std::ptrdiff_t{-1}, false, false, false }, ::hilti::rt::type_info::struct_::Field{ "body_len", &::hilti::rt::type_info::uint64, std::ptrdiff_t{-1}, false, false, false }, ::hilti::rt::type_info::struct_::Field{ "content_length", &::hilti::rt::type_info::uint64, static_cast<std::ptrdiff_t>(offsetof(HTTP::Message, content_length)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::integer::safe<uint64_t>>() }, ::hilti::rt::type_info::struct_::Field{ "content_type", &type_info::_t_ti_tuple_bytes__bytes__tuplex2abytes_bytes_x2b, static_cast<std::ptrdiff_t>(offsetof(HTTP::Message, content_type)), false, false, true }, ::hilti::rt::type_info::struct_::Field{ "content_type_parameter", &::hilti::rt::type_info::bytes, static_cast<std::ptrdiff_t>(offsetof(HTTP::Message, content_type_parameter)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::Bytes>() }, ::hilti::rt::type_info::struct_::Field{ "delivery_mode", &type_info::_t_ti_HTTP__DeliveryMode_namex2aHTTP__DeliveryModex2b, static_cast<std::ptrdiff_t>(offsetof(HTTP::Message, delivery_mode)), false, false, true }, ::hilti::rt::type_info::struct_::Field{ "multipart_boundary", &::hilti::rt::type_info::bytes, static_cast<std::ptrdiff_t>(offsetof(HTTP::Message, multipart_boundary)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::Bytes>() }, ::hilti::rt::type_info::struct_::Field{ "transfer_encoding", &::hilti::rt::type_info::bytes, static_cast<std::ptrdiff_t>(offsetof(HTTP::Message, transfer_encoding)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::Bytes>() }, ::hilti::rt::type_info::struct_::Field{ "_t_error", &type_info::_t_ti_optional_spicy__RecoverableFailure__optionalx2anamex2ahilti__RecoverableFailurex2bx2b, static_cast<std::ptrdiff_t>(offsetof(HTTP::Message, _t_error)), true, false, true }})) };
799
0
    const ::hilti::rt::TypeInfo _t_ti_HTTP__Chunks_namex2aHTTP__Chunksx2b = { "HTTP::Chunks", "HTTP::Chunks", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const hlt_internal_HTTP_Reply::HTTP::Chunks*>(self)); }, new ::hilti::rt::type_info::Struct(std::vector<::hilti::rt::type_info::struct_::Field>({::hilti::rt::type_info::struct_::Field{ "trailer", &type_info::_t_ti_vector_value_ref_Header___vectorx2anamex2aHTTP__Headerx2bx2b, static_cast<std::ptrdiff_t>(offsetof(HTTP::Chunks, trailer)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::Vector<::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Header>>>() }, ::hilti::rt::type_info::struct_::Field{ "_t_error", &type_info::_t_ti_optional_spicy__RecoverableFailure__optionalx2anamex2ahilti__RecoverableFailurex2bx2b, static_cast<std::ptrdiff_t>(offsetof(HTTP::Chunks, _t_error)), true, false, true }})) };
800
0
    const ::hilti::rt::TypeInfo _t_ti_HTTP__Chunk_namex2aHTTP__Chunkx2b = { "HTTP::Chunk", "HTTP::Chunk", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const hlt_internal_HTTP_Reply::HTTP::Chunk*>(self)); }, new ::hilti::rt::type_info::Struct(std::vector<::hilti::rt::type_info::struct_::Field>({::hilti::rt::type_info::struct_::Field{ "length", &::hilti::rt::type_info::uint64, static_cast<std::ptrdiff_t>(offsetof(HTTP::Chunk, length)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::integer::safe<uint64_t>>() }, ::hilti::rt::type_info::struct_::Field{ "extension", &::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(HTTP::Chunk, _t_error)), true, false, true }})) };
801
0
    const ::hilti::rt::TypeInfo _t_ti_HTTP__Content_namex2aHTTP__Contentx2b = { "HTTP::Content", "HTTP::Content", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const hlt_internal_HTTP_Reply::HTTP::Content*>(self)); }, new ::hilti::rt::type_info::Struct(std::vector<::hilti::rt::type_info::struct_::Field>({::hilti::rt::type_info::struct_::Field{ "data", &::hilti::rt::type_info::bytes, static_cast<std::ptrdiff_t>(offsetof(HTTP::Content, data)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::Bytes>() }, ::hilti::rt::type_info::struct_::Field{ "have_content", &::hilti::rt::type_info::bool_, std::ptrdiff_t{-1}, false, false, false }, ::hilti::rt::type_info::struct_::Field{ "_t_sink", &type_info::_t_ti_spicy_rt__SinkState_libraryx2astd__shared_ptr_spicy__rt__sink__detail__State_x2b, static_cast<std::ptrdiff_t>(offsetof(HTTP::Content, _t_sink)), 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(HTTP::Content, _t_error)), true, false, true }})) };
802
0
    const ::hilti::rt::TypeInfo _t_ti_HTTP__Version_namex2aHTTP__Versionx2b = { "HTTP::Version", "HTTP::Version", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const hlt_internal_HTTP_Reply::HTTP::Version*>(self)); }, new ::hilti::rt::type_info::Struct(std::vector<::hilti::rt::type_info::struct_::Field>({::hilti::rt::type_info::struct_::Field{ "number", &::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(HTTP::Version, _t_error)), true, false, true }})) };
803
0
    const ::hilti::rt::TypeInfo _t_ti_HTTP__ReplyLine_namex2aHTTP__ReplyLinex2b = { "HTTP::ReplyLine", "HTTP::ReplyLine", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const hlt_internal_HTTP_Reply::HTTP::ReplyLine*>(self)); }, new ::hilti::rt::type_info::Struct(std::vector<::hilti::rt::type_info::struct_::Field>({::hilti::rt::type_info::struct_::Field{ "version", &type_info::_t_ti_HTTP__Version_namex2aHTTP__Versionx2b, static_cast<std::ptrdiff_t>(offsetof(HTTP::ReplyLine, version)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<hlt_internal_HTTP_Reply::HTTP::Version>() }, ::hilti::rt::type_info::struct_::Field{ "status", &::hilti::rt::type_info::uint64, static_cast<std::ptrdiff_t>(offsetof(HTTP::ReplyLine, status)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::integer::safe<uint64_t>>() }, ::hilti::rt::type_info::struct_::Field{ "reason", &::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(HTTP::ReplyLine, _t_error)), true, false, true }})) };
804
0
    const ::hilti::rt::TypeInfo _t_ti_value_ref_Message__value_refx2anamex2aHTTP__Messagex2bx2b = { {}, "value_ref<Message>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Message>*>(self)); }, new ::hilti::rt::type_info::ValueReference(&type_info::_t_ti_HTTP__Message_namex2aHTTP__Messagex2b, ::hilti::rt::type_info::ValueReference::accessor<hlt_internal_HTTP_Reply::HTTP::Message>()) };
805
0
    const ::hilti::rt::TypeInfo _t_ti_HTTP__Reply_namex2aHTTP__Replyx2b = { "HTTP::Reply", "HTTP::Reply", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const hlt_internal_HTTP_Reply::HTTP::Reply*>(self)); }, new ::hilti::rt::type_info::Struct(std::vector<::hilti::rt::type_info::struct_::Field>({::hilti::rt::type_info::struct_::Field{ "reply", &type_info::_t_ti_HTTP__ReplyLine_namex2aHTTP__ReplyLinex2b, static_cast<std::ptrdiff_t>(offsetof(HTTP::Reply, reply)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<hlt_internal_HTTP_Reply::HTTP::ReplyLine>() }, ::hilti::rt::type_info::struct_::Field{ "message", &type_info::_t_ti_value_ref_Message__value_refx2anamex2aHTTP__Messagex2bx2b, static_cast<std::ptrdiff_t>(offsetof(HTTP::Reply, message)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Message>>() }, ::hilti::rt::type_info::struct_::Field{ "_t_error", &type_info::_t_ti_optional_spicy__RecoverableFailure__optionalx2anamex2ahilti__RecoverableFailurex2bx2b, static_cast<std::ptrdiff_t>(offsetof(HTTP::Reply, _t_error)), true, false, true }})) };
806
0
    const ::hilti::rt::TypeInfo _t_ti_HTTP__Replies_namex2aHTTP__Repliesx2b = { "HTTP::Replies", "HTTP::Replies", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const hlt_internal_HTTP_Reply::HTTP::Replies*>(self)); }, new ::hilti::rt::type_info::Struct(std::vector<::hilti::rt::type_info::struct_::Field>({::hilti::rt::type_info::struct_::Field{ "_t_error", &type_info::_t_ti_optional_spicy__RecoverableFailure__optionalx2anamex2ahilti__RecoverableFailurex2bx2b, static_cast<std::ptrdiff_t>(offsetof(HTTP::Replies, _t_error)), true, false, true }})) };
807
0
    const ::hilti::rt::TypeInfo _t_ti_value_ref_HTTP__Replies__value_refx2anamex2aHTTP__Repliesx2bx2b = { {}, "value_ref<HTTP::Replies>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Replies>*>(self)); }, new ::hilti::rt::type_info::ValueReference(&type_info::_t_ti_HTTP__Replies_namex2aHTTP__Repliesx2b, ::hilti::rt::type_info::ValueReference::accessor<hlt_internal_HTTP_Reply::HTTP::Replies>()) };
808
0
    const ::hilti::rt::TypeInfo _t_ti_HTTP__RequestLine_namex2aHTTP__RequestLinex2b = { "HTTP::RequestLine", "HTTP::RequestLine", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const hlt_internal_HTTP_Reply::HTTP::RequestLine*>(self)); }, new ::hilti::rt::type_info::Struct(std::vector<::hilti::rt::type_info::struct_::Field>({::hilti::rt::type_info::struct_::Field{ "method", &::hilti::rt::type_info::bytes, std::ptrdiff_t{-1}, false, false, false }, ::hilti::rt::type_info::struct_::Field{ "uri", &::hilti::rt::type_info::bytes, std::ptrdiff_t{-1}, false, false, false }, ::hilti::rt::type_info::struct_::Field{ "version", &type_info::_t_ti_HTTP__Version_namex2aHTTP__Versionx2b, static_cast<std::ptrdiff_t>(offsetof(HTTP::RequestLine, version)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<hlt_internal_HTTP_Reply::HTTP::Version>() }, ::hilti::rt::type_info::struct_::Field{ "_t_error", &type_info::_t_ti_optional_spicy__RecoverableFailure__optionalx2anamex2ahilti__RecoverableFailurex2bx2b, static_cast<std::ptrdiff_t>(offsetof(HTTP::RequestLine, _t_error)), true, false, true }})) };
809
0
    const ::hilti::rt::TypeInfo _t_ti_HTTP__Request_namex2aHTTP__Requestx2b = { "HTTP::Request", "HTTP::Request", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const hlt_internal_HTTP_Reply::HTTP::Request*>(self)); }, new ::hilti::rt::type_info::Struct(std::vector<::hilti::rt::type_info::struct_::Field>({::hilti::rt::type_info::struct_::Field{ "request", &type_info::_t_ti_HTTP__RequestLine_namex2aHTTP__RequestLinex2b, static_cast<std::ptrdiff_t>(offsetof(HTTP::Request, request)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<hlt_internal_HTTP_Reply::HTTP::RequestLine>() }, ::hilti::rt::type_info::struct_::Field{ "message", &type_info::_t_ti_value_ref_Message__value_refx2anamex2aHTTP__Messagex2bx2b, static_cast<std::ptrdiff_t>(offsetof(HTTP::Request, message)), false, false, true, ::hilti::rt::type_info::struct_::Field::accessor_optional<::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Message>>() }, ::hilti::rt::type_info::struct_::Field{ "_t_error", &type_info::_t_ti_optional_spicy__RecoverableFailure__optionalx2anamex2ahilti__RecoverableFailurex2bx2b, static_cast<std::ptrdiff_t>(offsetof(HTTP::Request, _t_error)), true, false, true }})) };
810
0
    const ::hilti::rt::TypeInfo _t_ti_HTTP__Requests_namex2aHTTP__Requestsx2b = { "HTTP::Requests", "HTTP::Requests", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const hlt_internal_HTTP_Reply::HTTP::Requests*>(self)); }, new ::hilti::rt::type_info::Struct(std::vector<::hilti::rt::type_info::struct_::Field>({::hilti::rt::type_info::struct_::Field{ "_t_error", &type_info::_t_ti_optional_spicy__RecoverableFailure__optionalx2anamex2ahilti__RecoverableFailurex2bx2b, static_cast<std::ptrdiff_t>(offsetof(HTTP::Requests, _t_error)), true, false, true }})) };
811
0
    const ::hilti::rt::TypeInfo _t_ti_value_ref_HTTP__Requests__value_refx2anamex2aHTTP__Requestsx2bx2b = { {}, "value_ref<HTTP::Requests>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Requests>*>(self)); }, new ::hilti::rt::type_info::ValueReference(&type_info::_t_ti_HTTP__Requests_namex2aHTTP__Requestsx2b, ::hilti::rt::type_info::ValueReference::accessor<hlt_internal_HTTP_Reply::HTTP::Requests>()) };
812
0
    const ::hilti::rt::TypeInfo _t_ti_strong_ref_const_HTTP__Body__strong_refx2anamex2aHTTP__Bodyx2bx2b = { {}, "strong_ref<const HTTP::Body>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::StrongReference<hlt_internal_HTTP_Reply::HTTP::Body>*>(self)); }, new ::hilti::rt::type_info::StrongReference(&type_info::_t_ti_HTTP__Body_namex2aHTTP__Bodyx2b, ::hilti::rt::type_info::StrongReference::accessor<hlt_internal_HTTP_Reply::HTTP::Body>()) };
813
0
    const ::hilti::rt::TypeInfo _t_ti_strong_ref_const_HTTP__Content__strong_refx2anamex2aHTTP__Contentx2bx2b = { {}, "strong_ref<const HTTP::Content>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::StrongReference<hlt_internal_HTTP_Reply::HTTP::Content>*>(self)); }, new ::hilti::rt::type_info::StrongReference(&type_info::_t_ti_HTTP__Content_namex2aHTTP__Contentx2b, ::hilti::rt::type_info::StrongReference::accessor<hlt_internal_HTTP_Reply::HTTP::Content>()) };
814
0
    const ::hilti::rt::TypeInfo _t_ti_strong_ref_const_HTTP__Replies__strong_refx2anamex2aHTTP__Repliesx2bx2b = { {}, "strong_ref<const HTTP::Replies>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::StrongReference<hlt_internal_HTTP_Reply::HTTP::Replies>*>(self)); }, new ::hilti::rt::type_info::StrongReference(&type_info::_t_ti_HTTP__Replies_namex2aHTTP__Repliesx2b, ::hilti::rt::type_info::StrongReference::accessor<hlt_internal_HTTP_Reply::HTTP::Replies>()) };
815
0
    const ::hilti::rt::TypeInfo _t_ti_strong_ref_const_HTTP__Requests__strong_refx2anamex2aHTTP__Requestsx2bx2b = { {}, "strong_ref<const HTTP::Requests>", [](const void *self) { return hilti::rt::to_string(*reinterpret_cast<const ::hilti::rt::StrongReference<hlt_internal_HTTP_Reply::HTTP::Requests>*>(self)); }, new ::hilti::rt::type_info::StrongReference(&type_info::_t_ti_HTTP__Requests_namex2aHTTP__Requestsx2b, ::hilti::rt::type_info::StrongReference::accessor<hlt_internal_HTTP_Reply::HTTP::Requests>()) };
816
} }
817
818
HILTI_PRE_INIT(hlt_internal_HTTP_Reply::HTTP::_t_register_module)
819
820
0
inline auto ::hilti::rt::detail::adl::to_string(hlt_internal_HTTP_Reply::HTTP::DeliveryMode x, adl::tag) -> std::string {
821
0
    switch ( x.value() ) {
822
0
        case hlt_internal_HTTP_Reply::HTTP::DeliveryMode::Chunked: return "DeliveryMode::Chunked";
823
0
        case hlt_internal_HTTP_Reply::HTTP::DeliveryMode::Multipart: return "DeliveryMode::Multipart";
824
0
        case hlt_internal_HTTP_Reply::HTTP::DeliveryMode::Length: return "DeliveryMode::Length";
825
0
        case hlt_internal_HTTP_Reply::HTTP::DeliveryMode::EndOfData: return "DeliveryMode::EndOfData";
826
0
        case hlt_internal_HTTP_Reply::HTTP::DeliveryMode::Undef: return "DeliveryMode::Undef";
827
0
        default: return ::hilti::rt::fmt("DeliveryMode::<unknown-%" PRIu64 ">", x.value());
828
0
    }
829
0
}
830
831
0
auto hlt_HTTP_Reply::HTTP::Body::parse2(::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Body>& _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 {
832
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));
833
0
    auto args_on_heap = std::make_shared<decltype(args)>(std::move(args));
834
0
    auto cb = [args_on_heap = std::move(args_on_heap)](::hilti::rt::resumable::Handle* r) -> ::hilti::rt::any {
835
0
        return hlt_internal_HTTP_Reply::HTTP::Body::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));
836
0
    };
837
838
0
    auto r = std::make_unique<::hilti::rt::Resumable>(std::move(cb));
839
0
    r->run();
840
0
    return std::move(*r);
841
0
}
842
843
0
auto hlt_HTTP_Reply::HTTP::Content::parse2(::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Content>& _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 {
844
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));
845
0
    auto args_on_heap = std::make_shared<decltype(args)>(std::move(args));
846
0
    auto cb = [args_on_heap = std::move(args_on_heap)](::hilti::rt::resumable::Handle* r) -> ::hilti::rt::any {
847
0
        return hlt_internal_HTTP_Reply::HTTP::Content::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));
848
0
    };
849
850
0
    auto r = std::make_unique<::hilti::rt::Resumable>(std::move(cb));
851
0
    r->run();
852
0
    return std::move(*r);
853
0
}
854
855
0
auto hlt_HTTP_Reply::HTTP::Replies::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 {
856
0
    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));
857
0
    auto args_on_heap = std::make_shared<decltype(args)>(std::move(args));
858
0
    auto cb = [args_on_heap = std::move(args_on_heap)](::hilti::rt::resumable::Handle* r) -> ::hilti::rt::any {
859
0
        return hlt_internal_HTTP_Reply::HTTP::Replies::parse1(std::get<0>(*args_on_heap), std::get<1>(*args_on_heap), std::get<2>(*args_on_heap));
860
0
    };
861
862
0
    auto r = std::make_unique<::hilti::rt::Resumable>(std::move(cb));
863
0
    r->run();
864
0
    return std::move(*r);
865
0
}
866
867
0
auto hlt_HTTP_Reply::HTTP::Replies::parse2(::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Replies>& _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 {
868
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));
869
0
    auto args_on_heap = std::make_shared<decltype(args)>(std::move(args));
870
0
    auto cb = [args_on_heap = std::move(args_on_heap)](::hilti::rt::resumable::Handle* r) -> ::hilti::rt::any {
871
0
        return hlt_internal_HTTP_Reply::HTTP::Replies::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));
872
0
    };
873
874
0
    auto r = std::make_unique<::hilti::rt::Resumable>(std::move(cb));
875
0
    r->run();
876
0
    return std::move(*r);
877
0
}
878
879
0
auto hlt_HTTP_Reply::HTTP::Replies::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 {
880
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));
881
0
    auto args_on_heap = std::make_shared<decltype(args)>(std::move(args));
882
0
    auto cb = [args_on_heap = std::move(args_on_heap)](::hilti::rt::resumable::Handle* r) -> ::hilti::rt::any {
883
0
        return hlt_internal_HTTP_Reply::HTTP::Replies::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));
884
0
    };
885
886
0
    auto r = std::make_unique<::hilti::rt::Resumable>(std::move(cb));
887
0
    r->run();
888
0
    return std::move(*r);
889
0
}
890
891
0
auto hlt_HTTP_Reply::HTTP::Requests::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 {
892
0
    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));
893
0
    auto args_on_heap = std::make_shared<decltype(args)>(std::move(args));
894
0
    auto cb = [args_on_heap = std::move(args_on_heap)](::hilti::rt::resumable::Handle* r) -> ::hilti::rt::any {
895
0
        return hlt_internal_HTTP_Reply::HTTP::Requests::parse1(std::get<0>(*args_on_heap), std::get<1>(*args_on_heap), std::get<2>(*args_on_heap));
896
0
    };
897
898
0
    auto r = std::make_unique<::hilti::rt::Resumable>(std::move(cb));
899
0
    r->run();
900
0
    return std::move(*r);
901
0
}
902
903
0
auto hlt_HTTP_Reply::HTTP::Requests::parse2(::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Requests>& _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 {
904
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));
905
0
    auto args_on_heap = std::make_shared<decltype(args)>(std::move(args));
906
0
    auto cb = [args_on_heap = std::move(args_on_heap)](::hilti::rt::resumable::Handle* r) -> ::hilti::rt::any {
907
0
        return hlt_internal_HTTP_Reply::HTTP::Requests::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));
908
0
    };
909
910
0
    auto r = std::make_unique<::hilti::rt::Resumable>(std::move(cb));
911
0
    r->run();
912
0
    return std::move(*r);
913
0
}
914
915
0
auto hlt_HTTP_Reply::HTTP::Requests::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 {
916
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));
917
0
    auto args_on_heap = std::make_shared<decltype(args)>(std::move(args));
918
0
    auto cb = [args_on_heap = std::move(args_on_heap)](::hilti::rt::resumable::Handle* r) -> ::hilti::rt::any {
919
0
        return hlt_internal_HTTP_Reply::HTTP::Requests::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));
920
0
    };
921
922
0
    auto r = std::make_unique<::hilti::rt::Resumable>(std::move(cb));
923
0
    r->run();
924
0
    return std::move(*r);
925
0
}
926
927
0
inline void hlt_internal_HTTP_Reply::HTTP::Body::_t_on_0x25_done() {
928
0
    auto _t_self = HTTP::Body::_t_self();
929
0
    return hlt_internal_HTTP_Reply::HTTP::_t_hook_Body__t_on_0x25_done(_t_self);
930
0
}
931
932
0
inline void hlt_internal_HTTP_Reply::HTTP::Body::_t_on_0x25_error(const ::hilti::rt::String& _t_except) {
933
0
    auto _t_self = HTTP::Body::_t_self();
934
0
    return hlt_internal_HTTP_Reply::HTTP::_t_hook_Body__t_on_0x25_error(_t_except, _t_self);
935
0
}
936
937
0
inline void hlt_internal_HTTP_Reply::HTTP::Body::_t_on_0x25_init() {
938
0
    auto _t_self = HTTP::Body::_t_self();
939
0
    return hlt_internal_HTTP_Reply::HTTP::_t_hook_Body__t_on_0x25_init(_t_self);
940
0
}
941
942
0
inline void hlt_internal_HTTP_Reply::HTTP::Body::_t_on__anon_18_foreach(const ::hilti::rt::Bytes& _t_dd) {
943
0
    auto _t_self = HTTP::Body::_t_self();
944
0
    return hlt_internal_HTTP_Reply::HTTP::_t_hook_Body__t_on__anon_18_foreach(_t_dd, _t_self);
945
0
}
946
947
0
auto hlt_internal_HTTP_Reply::HTTP::Body::_t_parse_HTTP__Body_6_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>> {
948
0
    auto _t_self = Body::_t_self();
949
0
    ::hilti::rt::detail::checkStack();
950
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:145:13-186:1");
951
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:146:5-156:6");
952
953
    // Begin parsing production: Switch: switch_6 -> [DeliveryMode::EndOfData] -> switch_6_case_1 | [DeliveryMode::Length] -> switch_6_case_2 | [DeliveryMode::Multipart] -> switch_6_case_3 | [DeliveryMode::Chunked] -> switch_6_case_4;
954
0
    ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*_t_self)._t_parse_switch_6_stage1(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error));
955
    // End parsing production: Switch: switch_6 -> [DeliveryMode::EndOfData] -> switch_6_case_1 | [DeliveryMode::Length] -> switch_6_case_2 | [DeliveryMode::Multipart] -> switch_6_case_3 | [DeliveryMode::Chunked] -> switch_6_case_4;
956
957
0
    (*_t_self)._t_error = _t_error;
958
0
      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:145:13-186:1");
959
0
    (*_t_self)._t_on_0x25_done();
960
0
    _t_error = (*_t_self)._t_error;
961
0
      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:145:13-186:1");
962
0
    (*(*_t_self).data).close();
963
0
    ::hilti::rt::debug::dedent("spicy"sv);
964
0
    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));
965
0
}
966
967
0
auto hlt_internal_HTTP_Reply::HTTP::Body::_t_parse__anon_18_6_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, ::hilti::rt::stream::View _t_cur, ::hilti::rt::Bool _t_trim, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error, ::hilti::rt::Vector<::hilti::rt::Bytes>& _t_dst) -> ::hilti::rt::Tuple<::hilti::rt::stream::View, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
968
0
    ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_1;
969
0
    auto _t_self = Body::_t_self();
970
0
    ::hilti::rt::detail::checkStack();
971
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:152:34-153:67");
972
0
    while ( ! (::spicy::rt::detail::atEod(_t_data, _t_cur, (_t_lhs_1=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})))) ) {
973
0
        ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_3;
974
0
        ::hilti::rt::stream::SafeConstIterator _t_old_begin = _t_cur.begin();
975
0
        ::hilti::rt::Bytes _t_elem;
976
0
        ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:14:20-14:34");
977
978
        // Begin parsing production: Ctor: _anon_17_6 -> /[^\r\n]*\r?\n/ (regexp) (container '_anon_18');
979
0
        ::hilti::rt::stream::View _t_ncur = _t_cur;
980
0
        for ( ::hilti::rt::regexp::MatchState ms = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_14.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
981
0
            ::hilti::rt::integer::safe<int32_t> _t_rc;
982
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:14:20-14:34");
983
0
            ::hilti::rt::tuple::assign(std::tie(_t_rc, _t_ncur), ms.advance(_t_ncur));
984
0
            switch ( auto&& _t_x = _t_rc; (_t_x).Ref() ) {
985
0
                case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
986
0
                    ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_2;
987
                    // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores);
988
0
                    ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_ncur, (_t_lhs_2=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
989
0
                    continue;
990
0
                }
991
0
                case ::hilti::rt::integer::safe<std::int32_t>{0}: {
992
0
                      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:14:20-14:34");
993
0
                    throw ::spicy::rt::ParseError{"failed to match regular expression"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:14:20-14:34"};
994
0
                }
995
0
                default: {
996
0
                    ms.captures(_t_cur);
997
0
                    _t_elem = _t_cur.sub(_t_ncur.begin()).data();
998
0
                    _t_cur = _t_ncur;
999
0
                    if ( _t_trim ) {
1000
0
                        (*_t_data).trim(_t_ncur.begin());
1001
0
                    }
1002
1003
0
                    goto _t_done_102921;
1004
0
                }
1005
0
            }
1006
0
        }
1007
1008
0
        _t_done_102921: {}
1009
1010
        // End parsing production: Ctor: _anon_17_6 -> /[^\r\n]*\r?\n/ (regexp) (container '_anon_18');
1011
1012
0
        ::hilti::rt::Bool _t_stop = ::hilti::rt::Bool{false};
1013
0
        _t_stop = (_t_stop) || ((_t_elem == (*_t_self->_t_p_msg.derefAsValue()).multipart_boundary.value()));
1014
0
        if ( ! (_t_stop) ) {
1015
0
            (*_t_self)._t_error = _t_error;
1016
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:152:34-153:67");
1017
0
            (*_t_self)._t_on__anon_18_foreach(_t_elem);
1018
0
            _t_error = (*_t_self)._t_error;
1019
0
        }
1020
1021
0
        if ( ! (_t_stop) ) {
1022
0
            _t_dst.emplace_back(_t_elem);
1023
0
        }
1024
1025
0
        if ( _t_stop ) {
1026
0
            goto _t_done_102747;
1027
0
        }
1028
1029
0
        if ( (_t_cur.begin() == _t_old_begin) && (! (::spicy::rt::detail::atEod(_t_data, _t_cur, (_t_lhs_3=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{}))))) ) {
1030
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:152:34-153:67");
1031
0
            throw ::spicy::rt::ParseError{"loop body did not change input position, possible infinite loop"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:152:34-153:67"};
1032
0
        }
1033
0
    }
1034
1035
0
    _t_done_102747: {}
1036
1037
0
    return ::hilti::rt::tuple::make_from_optionals(::hilti::rt::optional::make(_t_cur), ::hilti::rt::optional::make(_t_error));
1038
0
}
1039
1040
0
auto hlt_internal_HTTP_Reply::HTTP::Body::_t_parse_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>> {
1041
0
    auto _t_self = Body::_t_self();
1042
0
    ::hilti::rt::detail::checkStack();
1043
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:145:13-186:1");
1044
0
    ::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;
1045
0
    try {
1046
0
        ::hilti::rt::debug::indent("spicy"sv);
1047
0
        ::hilti::rt::stream::SafeConstIterator _t_begin = _t_cur.begin();
1048
0
        (*_t_self)._t_error = _t_error;
1049
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:145:13-186:1");
1050
0
        (*_t_self)._t_on_0x25_init();
1051
0
        _t_error = (*_t_self)._t_error;
1052
0
        _t_result = (*_t_self)._t_parse_HTTP__Body_6_stage2(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error);
1053
0
    }
1054
0
    catch ( const ::std::exception& _t_except ) {
1055
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:145:13-186:1");
1056
0
        (*_t_self)._t_on_0x25_error(::hilti::rt::exception::what(_t_except));
1057
0
        (*(*_t_self).data).close();
1058
0
        throw;
1059
0
    }
1060
1061
0
    return _t_result;
1062
0
}
1063
1064
0
auto hlt_internal_HTTP_Reply::HTTP::Body::_t_parse_switch_6_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>> {
1065
0
    auto _t_self = Body::_t_self();
1066
0
    ::hilti::rt::detail::checkStack();
1067
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:146:5-156:6");
1068
0
    ::hilti::rt::debug::indent("spicy"sv);
1069
0
      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:146:5-156:6");
1070
0
    switch ( auto&& _t_x = _t_self->_t_p_delivery_mode; (_t_x).value() ) {
1071
0
        case (HTTP::DeliveryMode{HTTP::DeliveryMode::EndOfData}).value(): {
1072
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:148:7-148:68");
1073
0
            ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:148:7-148:68");
1074
1075
            // Begin parsing production: Block: switch_6_case_1 -> _anon_15_6;
1076
0
            ::hilti::rt::debug::indent("spicy"sv);
1077
0
            ::hilti::rt::Bytes _t_transient__anon_15;
1078
0
            ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:148:36-148:40");
1079
1080
            // Begin parsing production: Variable: _anon_15_6 -> bytes;
1081
0
            while ( ::hilti::rt::Bool{true} ) {
1082
0
                ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_4;
1083
0
                ::hilti::rt::Bool more_data = ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{1U}, (_t_lhs_4=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
1084
0
                if ( ::hilti::rt::Bool{static_cast<bool>(_t_cur.size())} ) {
1085
0
                    _t_transient__anon_15 = _t_cur.data();
1086
0
                    _t_cur = _t_cur.advance(_t_cur.size());
1087
0
                    if ( _t_trim ) {
1088
0
                        (*_t_data).trim(_t_cur.begin());
1089
0
                    }
1090
1091
0
                      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:148:34-148:68");
1092
0
                    (*(*_t_self).data).write(_t_transient__anon_15, ::hilti::rt::Optional<::hilti::rt::integer::safe<uint64_t>>{}, ::hilti::rt::Optional<::hilti::rt::integer::safe<uint64_t>>{});
1093
0
                }
1094
1095
0
                if ( ! (more_data) ) {
1096
0
                    goto _t_done_101601;
1097
0
                }
1098
0
            }
1099
1100
0
            _t_done_101601: {}
1101
1102
0
            if ( _t_trim ) {
1103
0
                (*_t_data).trim(_t_cur.begin());
1104
0
            }
1105
1106
            // End parsing production: Variable: _anon_15_6 -> bytes;
1107
1108
0
            ::hilti::rt::debug::dedent("spicy"sv);
1109
            // End parsing production: Block: switch_6_case_1 -> _anon_15_6;
1110
1111
0
            break;
1112
0
        }
1113
0
        case (HTTP::DeliveryMode{HTTP::DeliveryMode::Length}).value(): {
1114
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:150:7-150:93");
1115
0
            ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:150:7-150:93");
1116
1117
            // Begin parsing production: Block: switch_6_case_2 -> _anon_16_6;
1118
0
            ::hilti::rt::debug::indent("spicy"sv);
1119
0
            ::hilti::rt::Bytes _t_transient__anon_16;
1120
0
            ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:150:36-150:40");
1121
1122
            // Begin parsing production: Variable: _anon_16_6 -> bytes;
1123
0
            ::hilti::rt::integer::safe<uint64_t> _t_size = (*_t_self->_t_p_msg.derefAsValue()).content_length.value();
1124
0
            ::hilti::rt::stream::View _t_limited_ = _t_cur.limit(_t_size);
1125
0
            ::hilti::rt::stream::View _t_ncur = _t_cur.advance(_t_size);
1126
0
            while ( ::hilti::rt::Bool{true} ) {
1127
0
                ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_5;
1128
0
                ::hilti::rt::Bool more_data = ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_limited_, ::hilti::rt::integer::safe<std::uint64_t>{1U}, (_t_lhs_5=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
1129
0
                if ( ::hilti::rt::Bool{static_cast<bool>(_t_limited_.size())} ) {
1130
0
                    _t_transient__anon_16 = _t_limited_.data();
1131
0
                    _t_limited_ = _t_limited_.advance(_t_limited_.size());
1132
0
                    if ( _t_trim ) {
1133
0
                        (*_t_data).trim(_t_limited_.begin());
1134
0
                    }
1135
1136
0
                      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:150:34-150:93");
1137
0
                    (*(*_t_self).data).write(_t_transient__anon_16, ::hilti::rt::Optional<::hilti::rt::integer::safe<uint64_t>>{}, ::hilti::rt::Optional<::hilti::rt::integer::safe<uint64_t>>{});
1138
0
                }
1139
1140
0
                if ( ! (more_data) ) {
1141
0
                    goto _t_done_102075;
1142
0
                }
1143
0
            }
1144
1145
0
            _t_done_102075: {}
1146
1147
0
            _t_limited_ = _t_limited_.advance(_t_limited_.end());
1148
0
            if ( _t_trim ) {
1149
0
                (*_t_data).trim(_t_limited_.begin());
1150
0
            }
1151
1152
0
            if ( _t_trim ) {
1153
0
                (*_t_data).trim(_t_limited_.begin());
1154
0
            }
1155
1156
            // End parsing production: Variable: _anon_16_6 -> bytes;
1157
1158
0
            _t_cur = _t_ncur;
1159
0
            ::hilti::rt::debug::dedent("spicy"sv);
1160
            // End parsing production: Block: switch_6_case_2 -> _anon_16_6;
1161
1162
0
            break;
1163
0
        }
1164
0
        case (HTTP::DeliveryMode{HTTP::DeliveryMode::Multipart}).value(): {
1165
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:152:7-153:67");
1166
0
            ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:152:7-153:67");
1167
1168
            // Begin parsing production: Block: switch_6_case_3 -> _anon_18_6;
1169
0
            ::hilti::rt::debug::indent("spicy"sv);
1170
0
            ::hilti::rt::Vector<::hilti::rt::Bytes> _t_transient__anon_18;
1171
0
            ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:152:34-153:67");
1172
1173
            // Begin parsing production: ForEach: _anon_18_6 -> foreach: _anon_17_6;
1174
0
            ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_error), (*_t_self)._t_parse__anon_18_6_stage1(_t_data, _t_cur, _t_trim, _t_error, _t_transient__anon_18));
1175
            // End parsing production: ForEach: _anon_18_6 -> foreach: _anon_17_6;
1176
1177
0
            ::hilti::rt::debug::dedent("spicy"sv);
1178
            // End parsing production: Block: switch_6_case_3 -> _anon_18_6;
1179
1180
0
            break;
1181
0
        }
1182
0
        case (HTTP::DeliveryMode{HTTP::DeliveryMode::Chunked}).value(): {
1183
0
            ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Message> _t_lhs_6;
1184
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:155:7-155:53");
1185
0
            ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:155:7-155:53");
1186
1187
            // Begin parsing production: Block: switch_6_case_4 -> Resolved_59;
1188
0
            ::hilti::rt::debug::indent("spicy"sv);
1189
0
            ::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Chunks>> _t_transient__anon_19;
1190
0
            ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:199:15-204:1");
1191
1192
            // Begin parsing production: Unit: HTTP__Chunks_6 -> _anon_21_6 trailer_6 _anon_23_6 (field '_anon_19', id n/a, parser, args: (self, msg));
1193
0
            _t_transient__anon_19 = ::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Chunks>>((hlt_internal_HTTP_Reply::HTTP::Chunks{::hilti::rt::struct_::tag::Parameters(), _t_self, (_t_lhs_6=(_t_self->_t_p_msg.derefAsValue()).asSharedPtr())}));
1194
0
            ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*_t_transient__anon_19.value())._t_parse_stage1(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error));
1195
            // End parsing production: Unit: HTTP__Chunks_6 -> _anon_21_6 trailer_6 _anon_23_6 (field '_anon_19', id n/a, parser, args: (self, msg));
1196
1197
0
            ::hilti::rt::debug::dedent("spicy"sv);
1198
            // End parsing production: Block: switch_6_case_4 -> Resolved_59;
1199
1200
0
            break;
1201
0
        }
1202
0
        default: {
1203
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:146:5-156:6");
1204
0
            throw ::spicy::rt::ParseError{::hilti::rt::fmt("no matching case in switch statement for value '%s'"sv, _t_self->_t_p_delivery_mode), "/src/spicy/spicy-http/analyzer/analyzer.spicy:146:5-156:6"};
1205
0
        }
1206
0
    }
1207
0
    ::hilti::rt::debug::dedent("spicy"sv);
1208
0
    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));
1209
0
}
1210
1211
0
auto hlt_internal_HTTP_Reply::HTTP::Body::parse2(::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Body>& _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 {
1212
0
    ::hilti::rt::detail::checkStack();
1213
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:145:13-186:1");
1214
0
    ::hilti::rt::stream::View _t_ncur = (_t_cur ? _t_cur.value() : (*_t_data).view());
1215
0
    ::hilti::rt::integer::safe<int64_t> _t_lahead = ::hilti::rt::integer::safe<std::int64_t>{0};
1216
0
    ::hilti::rt::stream::SafeConstIterator _t_lahead_end;
1217
0
    ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error = ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>{};
1218
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:145:13-186:1");
1219
1220
    // Begin parsing production: Unit: HTTP__Body_6 -> switch_6;
1221
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, ::hilti::rt::Bool{true}, _t_lahead, _t_lahead_end, _t_error));
1222
    // End parsing production: Unit: HTTP__Body_6 -> switch_6;
1223
1224
0
    if ( _t_error.hasValue() ) {
1225
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())};
1226
0
    }
1227
1228
0
    return _t_ncur;
1229
0
}
1230
1231
0
auto hlt_internal_HTTP_Reply::HTTP::Chunk::_t_parse_HTTP__Chunk_8_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>> {
1232
0
    auto _t_self = Chunk::_t_self();
1233
0
    ::hilti::rt::detail::checkStack();
1234
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:206:14-213:1");
1235
0
    ::hilti::rt::integer::safe<uint64_t> _t_v_length;
1236
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:16:20-16:33");
1237
0
    ::hilti::rt::Bytes _t_parsed_length;
1238
1239
    // Begin parsing production: Ctor: length_8 -> /[0-9a-zA-Z]+/ (regexp);
1240
0
    ::hilti::rt::stream::View _t_ncur_ = _t_cur;
1241
0
    for ( ::hilti::rt::regexp::MatchState ms = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_15.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
1242
0
        ::hilti::rt::integer::safe<int32_t> _t_rc;
1243
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:16:20-16:33");
1244
0
        ::hilti::rt::tuple::assign(std::tie(_t_rc, _t_ncur_), ms.advance(_t_ncur_));
1245
0
        switch ( auto&& _t_x = _t_rc; (_t_x).Ref() ) {
1246
0
            case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
1247
0
                ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_7;
1248
                // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores);
1249
0
                ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_ncur_, (_t_lhs_7=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
1250
0
                continue;
1251
0
            }
1252
0
            case ::hilti::rt::integer::safe<std::int32_t>{0}: {
1253
0
                  ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:16:20-16:33");
1254
0
                throw ::spicy::rt::ParseError{"failed to match regular expression"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:16:20-16:33"};
1255
0
            }
1256
0
            default: {
1257
0
                ms.captures(_t_cur);
1258
0
                _t_parsed_length = _t_cur.sub(_t_ncur_.begin()).data();
1259
0
                _t_cur = _t_ncur_;
1260
0
                if ( _t_trim ) {
1261
0
                    (*_t_data).trim(_t_ncur_.begin());
1262
0
                }
1263
1264
0
                goto _t_done_121480;
1265
0
            }
1266
0
        }
1267
0
    }
1268
1269
0
    _t_done_121480: {}
1270
1271
    // End parsing production: Ctor: length_8 -> /[0-9a-zA-Z]+/ (regexp);
1272
1273
0
    _t_v_length = _t_parsed_length.toUInt(::hilti::rt::integer::safe<std::uint64_t>{16U});
1274
0
    (*_t_self).length.valueOrInit() = _t_v_length;
1275
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:18:28-18:35");
1276
1277
    // Begin parsing production: Ctor: _anon_24_8 -> /[ \t]*/ (regexp);
1278
0
    ::hilti::rt::stream::View _t_ncur = _t_cur;
1279
0
    for ( ::hilti::rt::regexp::MatchState ms = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_9.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
1280
0
        ::hilti::rt::integer::safe<int32_t> _t_rc;
1281
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:18:28-18:35");
1282
0
        ::hilti::rt::tuple::assign(std::tie(_t_rc, _t_ncur), ms.advance(_t_ncur));
1283
0
        switch ( auto&& _t_x = _t_rc; (_t_x).Ref() ) {
1284
0
            case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
1285
0
                ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_8;
1286
                // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores);
1287
0
                ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_ncur, (_t_lhs_8=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
1288
0
                continue;
1289
0
            }
1290
0
            case ::hilti::rt::integer::safe<std::int32_t>{0}: {
1291
0
                  ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:18:28-18:35");
1292
0
                throw ::spicy::rt::ParseError{"failed to match regular expression"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:18:28-18:35"};
1293
0
            }
1294
0
            default: {
1295
0
                ms.captures(_t_cur);
1296
0
                _t_cur.sub(_t_ncur.begin()).data();
1297
0
                _t_cur = _t_ncur;
1298
0
                if ( _t_trim ) {
1299
0
                    (*_t_data).trim(_t_ncur.begin());
1300
0
                }
1301
1302
0
                goto _t_done_122057;
1303
0
            }
1304
0
        }
1305
0
    }
1306
1307
0
    _t_done_122057: {}
1308
1309
    // End parsing production: Ctor: _anon_24_8 -> /[ \t]*/ (regexp);
1310
1311
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:13:20-13:29");
1312
1313
    // Begin parsing production: Ctor: extension_8 -> /[^\r\n]*/ (regexp);
1314
0
    ::hilti::rt::stream::View _t_ncur__ = _t_cur;
1315
0
    for ( ::hilti::rt::regexp::MatchState ms_ = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_10.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
1316
0
        ::hilti::rt::integer::safe<int32_t> _t_rc_;
1317
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:13:20-13:29");
1318
0
        ::hilti::rt::tuple::assign(std::tie(_t_rc_, _t_ncur__), ms_.advance(_t_ncur__));
1319
0
        switch ( auto&& _t_x_ = _t_rc_; (_t_x_).Ref() ) {
1320
0
            case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
1321
0
                ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_9;
1322
                // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores);
1323
0
                ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_ncur__, (_t_lhs_9=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
1324
0
                continue;
1325
0
            }
1326
0
            case ::hilti::rt::integer::safe<std::int32_t>{0}: {
1327
0
                  ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:13:20-13:29");
1328
0
                throw ::spicy::rt::ParseError{"failed to match regular expression"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:13:20-13:29"};
1329
0
            }
1330
0
            default: {
1331
0
                ms_.captures(_t_cur);
1332
0
                _t_cur.sub(_t_ncur__.begin()).data();
1333
0
                _t_cur = _t_ncur__;
1334
0
                if ( _t_trim ) {
1335
0
                    (*_t_data).trim(_t_ncur__.begin());
1336
0
                }
1337
1338
0
                goto _t_done_122412;
1339
0
            }
1340
0
        }
1341
0
    }
1342
1343
0
    _t_done_122412: {}
1344
1345
    // End parsing production: Ctor: extension_8 -> /[^\r\n]*/ (regexp);
1346
1347
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
1348
1349
    // Begin parsing production: Ctor: _anon_25_8 -> /\r?\n/ (regexp);
1350
0
    if ( ::hilti::rt::Bool{static_cast<bool>(_t_lah)} ) {
1351
0
        if ( _t_lah != ::hilti::rt::integer::safe<std::int64_t>{1} ) {
1352
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
1353
0
            throw ::spicy::rt::ParseError{"unexpected token to consume"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26"};
1354
0
        }
1355
1356
0
        _t_cur.sub(_t_lahe).data();
1357
0
        _t_lah = ::hilti::rt::integer::safe<std::int64_t>{0};
1358
0
        _t_cur = _t_cur.advance(_t_lahe);
1359
0
        if ( _t_trim ) {
1360
0
            (*_t_data).trim(_t_cur.begin());
1361
0
        }
1362
0
    }
1363
0
    else {
1364
0
        ::hilti::rt::stream::View _t_ncur = _t_cur;
1365
0
        for ( ::hilti::rt::regexp::MatchState ms = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_7.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
1366
0
            ::hilti::rt::integer::safe<int32_t> _t_rc;
1367
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
1368
0
            ::hilti::rt::tuple::assign(std::tie(_t_rc, _t_ncur), ms.advance(_t_ncur));
1369
0
            switch ( auto&& _t_x = _t_rc; (_t_x).Ref() ) {
1370
0
                case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
1371
0
                    ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_10;
1372
                    // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores);
1373
0
                    ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_ncur, (_t_lhs_10=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
1374
0
                    continue;
1375
0
                }
1376
0
                case ::hilti::rt::integer::safe<std::int32_t>{0}: {
1377
0
                      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
1378
0
                    throw ::spicy::rt::ParseError{"failed to match regular expression"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26"};
1379
0
                }
1380
0
                default: {
1381
0
                    ms.captures(_t_cur);
1382
0
                    _t_cur.sub(_t_ncur.begin()).data();
1383
0
                    _t_cur = _t_ncur;
1384
0
                    if ( _t_trim ) {
1385
0
                        (*_t_data).trim(_t_ncur.begin());
1386
0
                    }
1387
1388
0
                    goto _t_done_123050;
1389
0
                }
1390
0
            }
1391
0
        }
1392
1393
0
        _t_done_123050: {}
1394
1395
0
    }
1396
1397
    // End parsing production: Ctor: _anon_25_8 -> /\r?\n/ (regexp);
1398
1399
0
    ::hilti::rt::Bytes _t_transient__anon_26;
1400
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:211:16-211:20");
1401
1402
    // Begin parsing production: Variable: _anon_26_8 -> bytes;
1403
0
    ::hilti::rt::integer::safe<uint64_t> _t_size = (*_t_self).length.value();
1404
0
    ::hilti::rt::stream::View _t_limited_ = _t_cur.limit(_t_size);
1405
0
    ::hilti::rt::stream::View _t_ncur_2 = _t_cur.advance(_t_size);
1406
0
    while ( ::hilti::rt::Bool{true} ) {
1407
0
        ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_11;
1408
0
        ::hilti::rt::Bool more_data = ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_limited_, ::hilti::rt::integer::safe<std::uint64_t>{1U}, (_t_lhs_11=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
1409
0
        if ( ::hilti::rt::Bool{static_cast<bool>(_t_limited_.size())} ) {
1410
0
            _t_transient__anon_26 = _t_limited_.data();
1411
0
            _t_limited_ = _t_limited_.advance(_t_limited_.size());
1412
0
            if ( _t_trim ) {
1413
0
                (*_t_data).trim(_t_limited_.begin());
1414
0
            }
1415
1416
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:211:5-211:66");
1417
0
            (*(*_t_self->_t_p_body.derefAsValue()).data).write(_t_transient__anon_26, ::hilti::rt::Optional<::hilti::rt::integer::safe<uint64_t>>{}, ::hilti::rt::Optional<::hilti::rt::integer::safe<uint64_t>>{});
1418
0
        }
1419
1420
0
        if ( ! (more_data) ) {
1421
0
            goto _t_done_123422;
1422
0
        }
1423
0
    }
1424
1425
0
    _t_done_123422: {}
1426
1427
0
    _t_limited_ = _t_limited_.advance(_t_limited_.end());
1428
0
    if ( _t_trim ) {
1429
0
        (*_t_data).trim(_t_limited_.begin());
1430
0
    }
1431
1432
0
    if ( _t_trim ) {
1433
0
        (*_t_data).trim(_t_limited_.begin());
1434
0
    }
1435
1436
    // End parsing production: Variable: _anon_26_8 -> bytes;
1437
1438
0
    _t_cur = _t_ncur_2;
1439
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
1440
0
    if ( (*_t_self).length.value() != ::hilti::rt::integer::safe<std::uint64_t>{0U} ) {
1441
        // Begin parsing production: Ctor: _anon_27_8 -> /\r?\n/ (regexp);
1442
0
        if ( ::hilti::rt::Bool{static_cast<bool>(_t_lah)} ) {
1443
0
            if ( _t_lah != ::hilti::rt::integer::safe<std::int64_t>{1} ) {
1444
0
                  ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
1445
0
                throw ::spicy::rt::ParseError{"unexpected token to consume"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26"};
1446
0
            }
1447
1448
0
            _t_ncur_2.sub(_t_lahe).data();
1449
0
            _t_lah = ::hilti::rt::integer::safe<std::int64_t>{0};
1450
0
            _t_cur = _t_cur.advance(_t_lahe);
1451
0
            if ( _t_trim ) {
1452
0
                (*_t_data).trim(_t_cur.begin());
1453
0
            }
1454
0
        }
1455
0
        else {
1456
0
            ::hilti::rt::stream::View _t_ncur = _t_ncur_2;
1457
0
            for ( ::hilti::rt::regexp::MatchState ms = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_7.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
1458
0
                ::hilti::rt::integer::safe<int32_t> _t_rc;
1459
0
                  ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
1460
0
                ::hilti::rt::tuple::assign(std::tie(_t_rc, _t_ncur), ms.advance(_t_ncur));
1461
0
                switch ( auto&& _t_x = _t_rc; (_t_x).Ref() ) {
1462
0
                    case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
1463
0
                        ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_12;
1464
                        // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores);
1465
0
                        ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_ncur, (_t_lhs_12=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
1466
0
                        continue;
1467
0
                    }
1468
0
                    case ::hilti::rt::integer::safe<std::int32_t>{0}: {
1469
0
                          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
1470
0
                        throw ::spicy::rt::ParseError{"failed to match regular expression"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26"};
1471
0
                    }
1472
0
                    default: {
1473
0
                        ms.captures(_t_cur);
1474
0
                        _t_cur.sub(_t_ncur.begin()).data();
1475
0
                        _t_cur = _t_ncur;
1476
0
                        if ( _t_trim ) {
1477
0
                            (*_t_data).trim(_t_ncur.begin());
1478
0
                        }
1479
1480
0
                        goto _t_done_123932;
1481
0
                    }
1482
0
                }
1483
0
            }
1484
1485
0
            _t_done_123932: {}
1486
1487
0
        }
1488
1489
        // End parsing production: Ctor: _anon_27_8 -> /\r?\n/ (regexp);
1490
0
    }
1491
1492
0
    ::hilti::rt::debug::dedent("spicy"sv);
1493
0
    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));
1494
0
}
1495
1496
0
auto hlt_internal_HTTP_Reply::HTTP::Chunk::_t_parse_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>> {
1497
0
    auto _t_self = Chunk::_t_self();
1498
0
    ::hilti::rt::detail::checkStack();
1499
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:206:14-213:1");
1500
0
    ::hilti::rt::debug::indent("spicy"sv);
1501
0
    ::hilti::rt::stream::SafeConstIterator _t_begin_ = _t_cur.begin();
1502
0
    return (*_t_self)._t_parse_HTTP__Chunk_8_stage2(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error);
1503
0
}
1504
1505
0
inline void hlt_internal_HTTP_Reply::HTTP::Chunks::_t_on_trailer_foreach(const ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Header>& _t_dd) {
1506
0
    auto _t_self = HTTP::Chunks::_t_self();
1507
0
    return hlt_internal_HTTP_Reply::HTTP::_t_hook_Chunks__t_on_trailer_foreach(_t_dd, _t_self);
1508
0
}
1509
1510
0
auto hlt_internal_HTTP_Reply::HTTP::Chunks::_t_parse_HTTP__Chunks_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::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>> {
1511
0
    auto _t_self = Chunks::_t_self();
1512
0
    ::hilti::rt::detail::checkStack();
1513
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:199:15-204:1");
1514
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:200:5-200:53");
1515
1516
    // Begin parsing production: ForEach: _anon_21_7 -> foreach: Resolved_65;
1517
0
    ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*_t_self)._t_parse__anon_21_7_stage1(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error));
1518
    // End parsing production: ForEach: _anon_21_7 -> foreach: Resolved_65;
1519
1520
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:201:5-202:54");
1521
1522
    // Begin parsing production: While: trailer_7 -> while(<look-ahead-found>): Resolved_66;
1523
0
    ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*_t_self)._t_parse_trailer_7_stage1(_t_data, _t_begin, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error, (*_t_self).trailer.valueOrInit()));
1524
    // End parsing production: While: trailer_7 -> while(<look-ahead-found>): Resolved_66;
1525
1526
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
1527
1528
    // Begin parsing production: Ctor: _anon_23_7 -> /\r?\n/ (regexp);
1529
0
    if ( ::hilti::rt::Bool{static_cast<bool>(_t_lah)} ) {
1530
0
        if ( _t_lah != ::hilti::rt::integer::safe<std::int64_t>{1} ) {
1531
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
1532
0
            throw ::spicy::rt::ParseError{"unexpected token to consume"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26"};
1533
0
        }
1534
1535
0
        _t_cur.sub(_t_lahe).data();
1536
0
        _t_lah = ::hilti::rt::integer::safe<std::int64_t>{0};
1537
0
        _t_cur = _t_cur.advance(_t_lahe);
1538
0
        if ( _t_trim ) {
1539
0
            (*_t_data).trim(_t_cur.begin());
1540
0
        }
1541
0
    }
1542
0
    else {
1543
0
        ::hilti::rt::stream::View _t_ncur = _t_cur;
1544
0
        for ( ::hilti::rt::regexp::MatchState ms = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_7.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
1545
0
            ::hilti::rt::integer::safe<int32_t> _t_rc;
1546
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
1547
0
            ::hilti::rt::tuple::assign(std::tie(_t_rc, _t_ncur), ms.advance(_t_ncur));
1548
0
            switch ( auto&& _t_x = _t_rc; (_t_x).Ref() ) {
1549
0
                case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
1550
0
                    ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_13;
1551
                    // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores);
1552
0
                    ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_ncur, (_t_lhs_13=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
1553
0
                    continue;
1554
0
                }
1555
0
                case ::hilti::rt::integer::safe<std::int32_t>{0}: {
1556
0
                      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
1557
0
                    throw ::spicy::rt::ParseError{"failed to match regular expression"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26"};
1558
0
                }
1559
0
                default: {
1560
0
                    ms.captures(_t_cur);
1561
0
                    _t_cur.sub(_t_ncur.begin()).data();
1562
0
                    _t_cur = _t_ncur;
1563
0
                    if ( _t_trim ) {
1564
0
                        (*_t_data).trim(_t_ncur.begin());
1565
0
                    }
1566
1567
0
                    goto _t_done_117613;
1568
0
                }
1569
0
            }
1570
0
        }
1571
1572
0
        _t_done_117613: {}
1573
1574
0
    }
1575
1576
    // End parsing production: Ctor: _anon_23_7 -> /\r?\n/ (regexp);
1577
1578
0
    ::hilti::rt::debug::dedent("spicy"sv);
1579
0
    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));
1580
0
}
1581
1582
0
auto hlt_internal_HTTP_Reply::HTTP::Chunks::_t_parse__anon_21_7_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>> {
1583
0
    ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_14;
1584
0
    auto _t_self = Chunks::_t_self();
1585
0
    ::hilti::rt::detail::checkStack();
1586
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:200:5-200:53");
1587
0
    while ( ! (::spicy::rt::detail::atEod(_t_data, _t_cur, (_t_lhs_14=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})))) ) {
1588
0
        ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Body> _t_lhs_15;::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_16;
1589
0
        ::hilti::rt::stream::SafeConstIterator _t_old_begin = _t_cur.begin();
1590
0
        ::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Chunk>> _t_elem;
1591
0
        ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:206:14-213:1");
1592
1593
        // Begin parsing production: Unit: HTTP__Chunk_7 -> length_7 _anon_24_7 extension_7 _anon_25_7 _anon_26_7 _anon_27_7 (field '_anon_20', id n/a, parser, args: (body)) (container '_anon_21');
1594
0
        _t_elem = ::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Chunk>>((hlt_internal_HTTP_Reply::HTTP::Chunk{::hilti::rt::struct_::tag::Parameters(), (_t_lhs_15=(_t_self->_t_p_body.derefAsValue()).asSharedPtr())}));
1595
0
        ::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));
1596
        // End parsing production: Unit: HTTP__Chunk_7 -> length_7 _anon_24_7 extension_7 _anon_25_7 _anon_26_7 _anon_27_7 (field '_anon_20', id n/a, parser, args: (body)) (container '_anon_21');
1597
1598
0
        ::hilti::rt::Bool _t_stop = ::hilti::rt::Bool{false};
1599
0
        ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Chunk> _t_dd = _t_elem.value();
1600
0
        _t_stop = (_t_stop) || (((*_t_dd).length.value() == ::hilti::rt::integer::safe<std::uint64_t>{0U}));
1601
0
        if ( ! (_t_stop) ) {
1602
0
        }
1603
1604
0
        if ( _t_stop ) {
1605
0
            goto _t_done_114989;
1606
0
        }
1607
1608
0
        if ( (_t_cur.begin() == _t_old_begin) && (! (::spicy::rt::detail::atEod(_t_data, _t_cur, (_t_lhs_16=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{}))))) ) {
1609
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:200:5-200:53");
1610
0
            throw ::spicy::rt::ParseError{"loop body did not change input position, possible infinite loop"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:200:5-200:53"};
1611
0
        }
1612
0
    }
1613
1614
0
    _t_done_114989: {}
1615
1616
0
    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));
1617
0
}
1618
1619
0
auto hlt_internal_HTTP_Reply::HTTP::Chunks::_t_parse_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>> {
1620
0
    auto _t_self = Chunks::_t_self();
1621
0
    ::hilti::rt::detail::checkStack();
1622
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:199:15-204:1");
1623
0
    ::hilti::rt::debug::indent("spicy"sv);
1624
0
    ::hilti::rt::stream::SafeConstIterator _t_begin_ = _t_cur.begin();
1625
0
    return (*_t_self)._t_parse_HTTP__Chunks_7_stage2(_t_data, _t_begin_, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error);
1626
0
}
1627
1628
0
auto hlt_internal_HTTP_Reply::HTTP::Chunks::_t_parse_trailer_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::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_HTTP_Reply::HTTP::Header>>& _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>> {
1629
0
    auto _t_self = Chunks::_t_self();
1630
0
    ::hilti::rt::detail::checkStack();
1631
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:201:5-202:54");
1632
0
    while ( ::hilti::rt::Bool{true} ) {
1633
0
        ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_17;
1634
0
        ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{1U}, (_t_lhs_17=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
1635
0
        if ( ! (::hilti::rt::Bool{static_cast<bool>(_t_lah)}) ) {
1636
0
            ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_18;
1637
0
            if ( ::spicy::rt::detail::atEod(_t_data, _t_cur, (_t_lhs_18=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{}))) ) {
1638
0
                _t_lah = ::hilti::rt::integer::safe<std::int64_t>{-1};
1639
0
            }
1640
0
            else {
1641
0
                ::hilti::rt::stream::View ncur = _t_cur;
1642
0
                for ( ::hilti::rt::regexp::MatchState ms = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_11.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
1643
0
                    ::hilti::rt::integer::safe<int32_t> rc;
1644
0
                      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:201:5-202:54");
1645
0
                    ::hilti::rt::tuple::assign(std::tie(rc, ncur), ms.advance(ncur));
1646
0
                    switch ( auto&& _t_x = rc; (_t_x).Ref() ) {
1647
0
                        case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
1648
0
                            ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_19;
1649
0
                            if ( ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_cur, (_t_lhs_19=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{}))) ) {
1650
0
                                continue;
1651
0
                            }
1652
1653
0
                            _t_lah = ::hilti::rt::integer::safe<std::int64_t>{-1};
1654
0
                            _t_lahe = _t_cur.begin();
1655
0
                            goto _t_done_116050;
1656
0
                        }
1657
0
                        case ::hilti::rt::integer::safe<std::int32_t>{0}: {
1658
0
                            ::spicy::rt::detail::printParserState("HTTP::Chunks"sv, _t_data, ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>(_t_begin), _t_cur, _t_lah, _t_lahe, "default"sv, _t_trim, _t_error);
1659
0
                            _t_lah = ::hilti::rt::integer::safe<std::int64_t>{0};
1660
0
                            _t_lahe = _t_cur.begin();
1661
0
                            goto _t_done_116050;
1662
0
                        }
1663
0
                        default: {
1664
0
                            _t_lah = ::hilti::rt::integer::safe<int64_t>{rc};
1665
0
                            _t_lahe = ncur.begin();
1666
0
                            goto _t_done_116050;
1667
0
                        }
1668
0
                    }
1669
0
                }
1670
1671
0
                _t_done_116050: {}
1672
1673
0
                ::spicy::rt::detail::printParserState("HTTP::Chunks"sv, _t_data, ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>(_t_begin), _t_cur, _t_lah, _t_lahe, "default"sv, _t_trim, _t_error);
1674
0
            }
1675
0
        }
1676
1677
0
        switch ( auto&& _t_x = _t_lah; (_t_x).Ref() ) {
1678
0
            case ::hilti::rt::integer::safe<std::int64_t>{1}: goto _t_done_115928;
1679
0
            case ::hilti::rt::integer::safe<std::int64_t>{2}: {
1680
0
                ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Message> _t_lhs_20;::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_21;
1681
0
                ::hilti::rt::stream::SafeConstIterator _t_old_begin = _t_cur.begin();
1682
0
                ::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Header>> _t_elem;
1683
0
                ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:114:15-143:1");
1684
1685
                // Begin parsing production: Unit: HTTP__Header_8 -> name_8 _anon_13_8 content_8 _anon_14_8 (field '_anon_22', id n/a, parser, args: (msg)) (container 'trailer');
1686
0
                _t_elem = ::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Header>>((hlt_internal_HTTP_Reply::HTTP::Header{::hilti::rt::struct_::tag::Parameters(), (_t_lhs_20=(_t_self->_t_p_msg.derefAsValue()).asSharedPtr())}));
1687
0
                ::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));
1688
                // End parsing production: Unit: HTTP__Header_8 -> name_8 _anon_13_8 content_8 _anon_14_8 (field '_anon_22', id n/a, parser, args: (msg)) (container 'trailer');
1689
1690
0
                (*_t_self)._t_error = _t_error;
1691
0
                  ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:201:5-202:54");
1692
0
                (*_t_self)._t_on_trailer_foreach(_t_elem.value());
1693
0
                _t_error = (*_t_self)._t_error;
1694
0
                _t_dst.emplace_back(_t_elem.value());
1695
0
                if ( (_t_cur.begin() == _t_old_begin) && (! (::spicy::rt::detail::atEod(_t_data, _t_cur, (_t_lhs_21=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{}))))) ) {
1696
0
                      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:201:5-202:54");
1697
0
                    throw ::spicy::rt::ParseError{"loop body did not change input position, possible infinite loop"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:201:5-202:54"};
1698
0
                }
1699
1700
0
                break;
1701
0
            }
1702
0
            case ::hilti::rt::integer::safe<std::int64_t>{-1}: {
1703
0
                  ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:201:5-202:54");
1704
0
                throw ::spicy::rt::ParseError{"expected look-ahead token, but reached end-of-data"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:201:5-202:54"};
1705
0
            }
1706
0
            default: goto _t_done_115928;
1707
0
        }
1708
0
    }
1709
1710
0
    _t_done_115928: {}
1711
1712
0
    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));
1713
0
}
1714
1715
0
inline void hlt_internal_HTTP_Reply::HTTP::Content::_t_on_data() {
1716
0
    auto _t_self = HTTP::Content::_t_self();
1717
0
    return hlt_internal_HTTP_Reply::HTTP::_t_hook_Content__t_on_data(_t_self);
1718
0
}
1719
1720
0
auto hlt_internal_HTTP_Reply::HTTP::Content::_t_parse_HTTP__Content_stage2(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, ::hilti::rt::stream::View _t_cur, ::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>> {
1721
0
    auto _t_self = Content::_t_self();
1722
0
    ::hilti::rt::detail::checkStack();
1723
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:188:16-197:1");
1724
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:189:11-189:15");
1725
1726
    // Begin parsing production: Variable: data -> bytes;
1727
0
    while ( ::hilti::rt::Bool{true} ) {
1728
0
        ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_22;
1729
0
        ::hilti::rt::Bool more_data = ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{1U}, (_t_lhs_22=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
1730
0
        if ( ::hilti::rt::Bool{static_cast<bool>(_t_cur.size())} ) {
1731
0
            (*_t_self).data.valueOrInit() = _t_cur.data();
1732
0
            _t_cur = _t_cur.advance(_t_cur.size());
1733
0
            if ( _t_trim ) {
1734
0
                (*_t_data).trim(_t_cur.begin());
1735
0
            }
1736
1737
0
            (*_t_self)._t_error = _t_error;
1738
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:189:5-194:2");
1739
0
            (*_t_self)._t_on_data();
1740
0
            _t_error = (*_t_self)._t_error;
1741
0
        }
1742
1743
0
        if ( ! (more_data) ) {
1744
0
            goto _t_done_108914;
1745
0
        }
1746
0
    }
1747
1748
0
    _t_done_108914: {}
1749
1750
0
    if ( _t_trim ) {
1751
0
        (*_t_data).trim(_t_cur.begin());
1752
0
    }
1753
1754
    // End parsing production: Variable: data -> bytes;
1755
1756
0
    ::hilti::rt::debug::dedent("spicy"sv);
1757
0
    return ::hilti::rt::tuple::make_from_optionals(::hilti::rt::optional::make(_t_cur), ::hilti::rt::optional::make(_t_error));
1758
0
}
1759
1760
0
auto hlt_internal_HTTP_Reply::HTTP::Content::_t_parse_stage1(::hilti::rt::ValueReference<::hilti::rt::Stream>& _t_data, ::hilti::rt::stream::View _t_cur, ::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>> {
1761
0
    auto _t_self = Content::_t_self();
1762
0
    ::hilti::rt::detail::checkStack();
1763
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:188:16-197:1");
1764
0
    ::hilti::rt::debug::indent("spicy"sv);
1765
0
    ::hilti::rt::stream::SafeConstIterator _t_begin_ = _t_cur.begin();
1766
0
    return (*_t_self)._t_parse_HTTP__Content_stage2(_t_data, _t_cur, _t_trim, _t_error);
1767
0
}
1768
1769
0
auto hlt_internal_HTTP_Reply::HTTP::Content::parse2(::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Content>& _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 {
1770
0
    ::hilti::rt::detail::checkStack();
1771
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:188:16-197:1");
1772
0
    ::hilti::rt::stream::View _t_ncur = (_t_cur ? _t_cur.value() : (*_t_data).view());
1773
0
    ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error = ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>{};
1774
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:188:16-197:1");
1775
1776
    // Begin parsing production: Unit: HTTP__Content -> data;
1777
0
    ::hilti::rt::tuple::assign(std::tie(_t_ncur, _t_error), (*_t_unit)._t_parse_stage1(_t_data, _t_ncur, ::hilti::rt::Bool{true}, _t_error));
1778
    // End parsing production: Unit: HTTP__Content -> data;
1779
1780
0
    if ( _t_error.hasValue() ) {
1781
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())};
1782
0
    }
1783
1784
0
    return _t_ncur;
1785
0
}
1786
1787
0
inline void hlt_internal_HTTP_Reply::HTTP::Header::_t_on_content() {
1788
0
    auto _t_self = HTTP::Header::_t_self();
1789
0
    return hlt_internal_HTTP_Reply::HTTP::_t_hook_Header__t_on_content(_t_self);
1790
0
}
1791
1792
0
auto hlt_internal_HTTP_Reply::HTTP::Header::_t_parse_HTTP__Header_6_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>> {
1793
0
    auto _t_self = Header::_t_self();
1794
0
    ::hilti::rt::detail::checkStack();
1795
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:114:15-143:1");
1796
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:111:21-111:31");
1797
1798
    // Begin parsing production: Ctor: name_6 -> /[^:\r\n]+/ (regexp);
1799
0
    if ( ::hilti::rt::Bool{static_cast<bool>(_t_lah)} ) {
1800
0
        if ( _t_lah != ::hilti::rt::integer::safe<std::int64_t>{2} ) {
1801
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:111:21-111:31");
1802
0
            throw ::spicy::rt::ParseError{"unexpected token to consume"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:111:21-111:31"};
1803
0
        }
1804
1805
0
        (*_t_self).name.valueOrInit() = _t_cur.sub(_t_lahe).data();
1806
0
        _t_lah = ::hilti::rt::integer::safe<std::int64_t>{0};
1807
0
        _t_cur = _t_cur.advance(_t_lahe);
1808
0
        if ( _t_trim ) {
1809
0
            (*_t_data).trim(_t_cur.begin());
1810
0
        }
1811
0
    }
1812
0
    else {
1813
0
        ::hilti::rt::stream::View _t_ncur_ = _t_cur;
1814
0
        for ( ::hilti::rt::regexp::MatchState ms = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_12.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
1815
0
            ::hilti::rt::integer::safe<int32_t> _t_rc;
1816
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:111:21-111:31");
1817
0
            ::hilti::rt::tuple::assign(std::tie(_t_rc, _t_ncur_), ms.advance(_t_ncur_));
1818
0
            switch ( auto&& _t_x = _t_rc; (_t_x).Ref() ) {
1819
0
                case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
1820
0
                    ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_23;
1821
                    // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores);
1822
0
                    ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_ncur_, (_t_lhs_23=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
1823
0
                    continue;
1824
0
                }
1825
0
                case ::hilti::rt::integer::safe<std::int32_t>{0}: {
1826
0
                      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:111:21-111:31");
1827
0
                    throw ::spicy::rt::ParseError{"failed to match regular expression"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:111:21-111:31"};
1828
0
                }
1829
0
                default: {
1830
0
                    ms.captures(_t_cur);
1831
0
                    (*_t_self).name.valueOrInit() = _t_cur.sub(_t_ncur_.begin()).data();
1832
0
                    _t_cur = _t_ncur_;
1833
0
                    if ( _t_trim ) {
1834
0
                        (*_t_data).trim(_t_ncur_.begin());
1835
0
                    }
1836
1837
0
                    goto _t_done_94894;
1838
0
                }
1839
0
            }
1840
0
        }
1841
1842
0
        _t_done_94894: {}
1843
1844
0
    }
1845
1846
    // End parsing production: Ctor: name_6 -> /[^:\r\n]+/ (regexp);
1847
1848
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:116:14-116:22");
1849
1850
    // Begin parsing production: Ctor: _anon_13_6 -> /:[\t ]*/ (regexp);
1851
0
    ::hilti::rt::stream::View _t_ncur = _t_cur;
1852
0
    for ( ::hilti::rt::regexp::MatchState ms = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_13.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
1853
0
        ::hilti::rt::integer::safe<int32_t> _t_rc;
1854
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:116:14-116:22");
1855
0
        ::hilti::rt::tuple::assign(std::tie(_t_rc, _t_ncur), ms.advance(_t_ncur));
1856
0
        switch ( auto&& _t_x = _t_rc; (_t_x).Ref() ) {
1857
0
            case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
1858
0
                ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_24;
1859
                // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores);
1860
0
                ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_ncur, (_t_lhs_24=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
1861
0
                continue;
1862
0
            }
1863
0
            case ::hilti::rt::integer::safe<std::int32_t>{0}: {
1864
0
                  ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:116:14-116:22");
1865
0
                throw ::spicy::rt::ParseError{"failed to match regular expression"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:116:14-116:22"};
1866
0
            }
1867
0
            default: {
1868
0
                ms.captures(_t_cur);
1869
0
                _t_cur.sub(_t_ncur.begin()).data();
1870
0
                _t_cur = _t_ncur;
1871
0
                if ( _t_trim ) {
1872
0
                    (*_t_data).trim(_t_ncur.begin());
1873
0
                }
1874
1875
0
                goto _t_done_95443;
1876
0
            }
1877
0
        }
1878
0
    }
1879
1880
0
    _t_done_95443: {}
1881
1882
    // End parsing production: Ctor: _anon_13_6 -> /:[\t ]*/ (regexp);
1883
1884
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:112:21-112:30");
1885
1886
    // Begin parsing production: Ctor: content_6 -> /[^\r\n]*/ (regexp);
1887
0
    ::hilti::rt::stream::View _t_ncur__ = _t_cur;
1888
0
    for ( ::hilti::rt::regexp::MatchState ms_ = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_10.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
1889
0
        ::hilti::rt::integer::safe<int32_t> _t_rc_;
1890
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:112:21-112:30");
1891
0
        ::hilti::rt::tuple::assign(std::tie(_t_rc_, _t_ncur__), ms_.advance(_t_ncur__));
1892
0
        switch ( auto&& _t_x_ = _t_rc_; (_t_x_).Ref() ) {
1893
0
            case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
1894
0
                ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_25;
1895
                // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores);
1896
0
                ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_ncur__, (_t_lhs_25=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
1897
0
                continue;
1898
0
            }
1899
0
            case ::hilti::rt::integer::safe<std::int32_t>{0}: {
1900
0
                  ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:112:21-112:30");
1901
0
                throw ::spicy::rt::ParseError{"failed to match regular expression"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:112:21-112:30"};
1902
0
            }
1903
0
            default: {
1904
0
                ms_.captures(_t_cur);
1905
0
                (*_t_self).content.valueOrInit() = _t_cur.sub(_t_ncur__.begin()).data();
1906
0
                _t_cur = _t_ncur__;
1907
0
                if ( _t_trim ) {
1908
0
                    (*_t_data).trim(_t_ncur__.begin());
1909
0
                }
1910
1911
0
                goto _t_done_95798;
1912
0
            }
1913
0
        }
1914
0
    }
1915
1916
0
    _t_done_95798: {}
1917
1918
    // End parsing production: Ctor: content_6 -> /[^\r\n]*/ (regexp);
1919
1920
0
    (*_t_self)._t_error = _t_error;
1921
0
      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:117:5-117:25");
1922
0
    (*_t_self)._t_on_content();
1923
0
    _t_error = (*_t_self)._t_error;
1924
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
1925
1926
    // Begin parsing production: Ctor: _anon_14_6 -> /\r?\n/ (regexp);
1927
0
    if ( ::hilti::rt::Bool{static_cast<bool>(_t_lah)} ) {
1928
0
        if ( _t_lah != ::hilti::rt::integer::safe<std::int64_t>{1} ) {
1929
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
1930
0
            throw ::spicy::rt::ParseError{"unexpected token to consume"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26"};
1931
0
        }
1932
1933
0
        _t_cur.sub(_t_lahe).data();
1934
0
        _t_lah = ::hilti::rt::integer::safe<std::int64_t>{0};
1935
0
        _t_cur = _t_cur.advance(_t_lahe);
1936
0
        if ( _t_trim ) {
1937
0
            (*_t_data).trim(_t_cur.begin());
1938
0
        }
1939
0
    }
1940
0
    else {
1941
0
        ::hilti::rt::stream::View _t_ncur = _t_cur;
1942
0
        for ( ::hilti::rt::regexp::MatchState ms = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_7.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
1943
0
            ::hilti::rt::integer::safe<int32_t> _t_rc;
1944
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
1945
0
            ::hilti::rt::tuple::assign(std::tie(_t_rc, _t_ncur), ms.advance(_t_ncur));
1946
0
            switch ( auto&& _t_x = _t_rc; (_t_x).Ref() ) {
1947
0
                case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
1948
0
                    ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_26;
1949
                    // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores);
1950
0
                    ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_ncur, (_t_lhs_26=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
1951
0
                    continue;
1952
0
                }
1953
0
                case ::hilti::rt::integer::safe<std::int32_t>{0}: {
1954
0
                      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
1955
0
                    throw ::spicy::rt::ParseError{"failed to match regular expression"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26"};
1956
0
                }
1957
0
                default: {
1958
0
                    ms.captures(_t_cur);
1959
0
                    _t_cur.sub(_t_ncur.begin()).data();
1960
0
                    _t_cur = _t_ncur;
1961
0
                    if ( _t_trim ) {
1962
0
                        (*_t_data).trim(_t_ncur.begin());
1963
0
                    }
1964
1965
0
                    goto _t_done_96442;
1966
0
                }
1967
0
            }
1968
0
        }
1969
1970
0
        _t_done_96442: {}
1971
1972
0
    }
1973
1974
    // End parsing production: Ctor: _anon_14_6 -> /\r?\n/ (regexp);
1975
1976
0
    ::hilti::rt::debug::dedent("spicy"sv);
1977
0
    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));
1978
0
}
1979
1980
0
auto hlt_internal_HTTP_Reply::HTTP::Header::_t_parse_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>> {
1981
0
    auto _t_self = Header::_t_self();
1982
0
    ::hilti::rt::detail::checkStack();
1983
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:114:15-143:1");
1984
0
    ::hilti::rt::debug::indent("spicy"sv);
1985
0
    ::hilti::rt::stream::SafeConstIterator _t_begin_ = _t_cur.begin();
1986
0
    return (*_t_self)._t_parse_HTTP__Header_6_stage2(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error);
1987
0
}
1988
1989
0
inline void hlt_internal_HTTP_Reply::HTTP::Message::_t_on_0x25_init() {
1990
0
    auto _t_self = HTTP::Message::_t_self();
1991
0
    return hlt_internal_HTTP_Reply::HTTP::_t_hook_Message__t_on_0x25_init(_t_self);
1992
0
}
1993
1994
0
inline void hlt_internal_HTTP_Reply::HTTP::Message::_t_on_end_of_hdr() {
1995
0
    auto _t_self = HTTP::Message::_t_self();
1996
0
    return hlt_internal_HTTP_Reply::HTTP::_t_hook_Message__t_on_end_of_hdr(_t_self);
1997
0
}
1998
1999
0
auto hlt_internal_HTTP_Reply::HTTP::Message::_t_parse_HTTP__Message_5_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>> {
2000
0
    auto _t_self = Message::_t_self();
2001
0
    ::hilti::rt::detail::checkStack();
2002
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:69:16-109:1");
2003
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:70:5-70:33");
2004
2005
    // Begin parsing production: While: headers_5 -> while(<look-ahead-found>): Resolved_51;
2006
0
    ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*_t_self)._t_parse_headers_5_stage1(_t_data, _t_begin, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error, (*_t_self).headers.valueOrInit()));
2007
    // End parsing production: While: headers_5 -> while(<look-ahead-found>): Resolved_51;
2008
2009
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
2010
2011
    // Begin parsing production: Ctor: end_of_hdr_5 -> /\r?\n/ (regexp);
2012
0
    if ( ::hilti::rt::Bool{static_cast<bool>(_t_lah)} ) {
2013
0
        if ( _t_lah != ::hilti::rt::integer::safe<std::int64_t>{1} ) {
2014
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
2015
0
            throw ::spicy::rt::ParseError{"unexpected token to consume"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26"};
2016
0
        }
2017
2018
0
        _t_cur.sub(_t_lahe).data();
2019
0
        _t_lah = ::hilti::rt::integer::safe<std::int64_t>{0};
2020
0
        _t_cur = _t_cur.advance(_t_lahe);
2021
0
        if ( _t_trim ) {
2022
0
            (*_t_data).trim(_t_cur.begin());
2023
0
        }
2024
0
    }
2025
0
    else {
2026
0
        ::hilti::rt::stream::View _t_ncur = _t_cur;
2027
0
        for ( ::hilti::rt::regexp::MatchState ms = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_7.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
2028
0
            ::hilti::rt::integer::safe<int32_t> _t_rc;
2029
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
2030
0
            ::hilti::rt::tuple::assign(std::tie(_t_rc, _t_ncur), ms.advance(_t_ncur));
2031
0
            switch ( auto&& _t_x = _t_rc; (_t_x).Ref() ) {
2032
0
                case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
2033
0
                    ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_27;
2034
                    // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores);
2035
0
                    ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_ncur, (_t_lhs_27=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
2036
0
                    continue;
2037
0
                }
2038
0
                case ::hilti::rt::integer::safe<std::int32_t>{0}: {
2039
0
                      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
2040
0
                    throw ::spicy::rt::ParseError{"failed to match regular expression"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26"};
2041
0
                }
2042
0
                default: {
2043
0
                    ms.captures(_t_cur);
2044
0
                    _t_cur.sub(_t_ncur.begin()).data();
2045
0
                    _t_cur = _t_ncur;
2046
0
                    if ( _t_trim ) {
2047
0
                        (*_t_data).trim(_t_ncur.begin());
2048
0
                    }
2049
2050
0
                    goto _t_done_89440;
2051
0
                }
2052
0
            }
2053
0
        }
2054
2055
0
        _t_done_89440: {}
2056
2057
0
    }
2058
2059
    // End parsing production: Ctor: end_of_hdr_5 -> /\r?\n/ (regexp);
2060
2061
0
    (*_t_self)._t_error = _t_error;
2062
0
      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:71:5-71:24");
2063
0
    (*_t_self)._t_on_end_of_hdr();
2064
0
    _t_error = (*_t_self)._t_error;
2065
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:145:13-186:1");
2066
0
    if ( (*_t_self).has_body ) {
2067
        // Begin parsing production: Unit: HTTP__Body_5 -> switch_5 (field 'body', id n/a, parser, args: (self, self.delivery_mode, is_request));
2068
0
        (*_t_self).body.valueOrInit() = (hlt_internal_HTTP_Reply::HTTP::Body{::hilti::rt::struct_::tag::Parameters(), _t_self, (*_t_self).delivery_mode, _t_self->_t_p_is_request});
2069
0
        ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*(*_t_self).body.value())._t_parse_stage1(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error));
2070
        // End parsing production: Unit: HTTP__Body_5 -> switch_5 (field 'body', id n/a, parser, args: (self, self.delivery_mode, is_request));
2071
0
    }
2072
2073
0
    ::hilti::rt::debug::dedent("spicy"sv);
2074
0
    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));
2075
0
}
2076
2077
0
auto hlt_internal_HTTP_Reply::HTTP::Message::_t_parse_headers_5_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_HTTP_Reply::HTTP::Header>>& _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>> {
2078
0
    auto _t_self = Message::_t_self();
2079
0
    ::hilti::rt::detail::checkStack();
2080
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:70:5-70:33");
2081
0
    while ( ::hilti::rt::Bool{true} ) {
2082
0
        ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_28;
2083
0
        ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{1U}, (_t_lhs_28=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
2084
0
        if ( ! (::hilti::rt::Bool{static_cast<bool>(_t_lah)}) ) {
2085
0
            ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_29;
2086
0
            if ( ::spicy::rt::detail::atEod(_t_data, _t_cur, (_t_lhs_29=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{}))) ) {
2087
0
                _t_lah = ::hilti::rt::integer::safe<std::int64_t>{-1};
2088
0
            }
2089
0
            else {
2090
0
                ::hilti::rt::stream::View ncur = _t_cur;
2091
0
                for ( ::hilti::rt::regexp::MatchState ms = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_11.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
2092
0
                    ::hilti::rt::integer::safe<int32_t> rc;
2093
0
                      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:70:5-70:33");
2094
0
                    ::hilti::rt::tuple::assign(std::tie(rc, ncur), ms.advance(ncur));
2095
0
                    switch ( auto&& _t_x = rc; (_t_x).Ref() ) {
2096
0
                        case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
2097
0
                            ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_30;
2098
0
                            if ( ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_cur, (_t_lhs_30=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{}))) ) {
2099
0
                                continue;
2100
0
                            }
2101
2102
0
                            _t_lah = ::hilti::rt::integer::safe<std::int64_t>{-1};
2103
0
                            _t_lahe = _t_cur.begin();
2104
0
                            goto _t_done_87895;
2105
0
                        }
2106
0
                        case ::hilti::rt::integer::safe<std::int32_t>{0}: {
2107
0
                            ::spicy::rt::detail::printParserState("HTTP::Message"sv, _t_data, ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>(_t_begin), _t_cur, _t_lah, _t_lahe, "default"sv, _t_trim, _t_error);
2108
0
                            _t_lah = ::hilti::rt::integer::safe<std::int64_t>{0};
2109
0
                            _t_lahe = _t_cur.begin();
2110
0
                            goto _t_done_87895;
2111
0
                        }
2112
0
                        default: {
2113
0
                            _t_lah = ::hilti::rt::integer::safe<int64_t>{rc};
2114
0
                            _t_lahe = ncur.begin();
2115
0
                            goto _t_done_87895;
2116
0
                        }
2117
0
                    }
2118
0
                }
2119
2120
0
                _t_done_87895: {}
2121
2122
0
                ::spicy::rt::detail::printParserState("HTTP::Message"sv, _t_data, ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>(_t_begin), _t_cur, _t_lah, _t_lahe, "default"sv, _t_trim, _t_error);
2123
0
            }
2124
0
        }
2125
2126
0
        switch ( auto&& _t_x = _t_lah; (_t_x).Ref() ) {
2127
0
            case ::hilti::rt::integer::safe<std::int64_t>{1}: goto _t_done_87771;
2128
0
            case ::hilti::rt::integer::safe<std::int64_t>{2}: {
2129
0
                ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_31;
2130
0
                ::hilti::rt::stream::SafeConstIterator _t_old_begin = _t_cur.begin();
2131
0
                ::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Header>> _t_elem;
2132
0
                ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:114:15-143:1");
2133
2134
                // Begin parsing production: Unit: HTTP__Header_5 -> name_5 _anon_13_5 content_5 _anon_14_5 (field '_anon_12', id n/a, parser, args: (self)) (container 'headers');
2135
0
                _t_elem = ::hilti::rt::Optional<::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Header>>((hlt_internal_HTTP_Reply::HTTP::Header{::hilti::rt::struct_::tag::Parameters(), _t_self}));
2136
0
                ::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));
2137
                // End parsing production: Unit: HTTP__Header_5 -> name_5 _anon_13_5 content_5 _anon_14_5 (field '_anon_12', id n/a, parser, args: (self)) (container 'headers');
2138
2139
0
                _t_dst.emplace_back(_t_elem.value());
2140
0
                if ( (_t_cur.begin() == _t_old_begin) && (! (::spicy::rt::detail::atEod(_t_data, _t_cur, (_t_lhs_31=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{}))))) ) {
2141
0
                      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:70:5-70:33");
2142
0
                    throw ::spicy::rt::ParseError{"loop body did not change input position, possible infinite loop"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:70:5-70:33"};
2143
0
                }
2144
2145
0
                break;
2146
0
            }
2147
0
            case ::hilti::rt::integer::safe<std::int64_t>{-1}: {
2148
0
                  ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:70:5-70:33");
2149
0
                throw ::spicy::rt::ParseError{"expected look-ahead token, but reached end-of-data"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:70:5-70:33"};
2150
0
            }
2151
0
            default: goto _t_done_87771;
2152
0
        }
2153
0
    }
2154
2155
0
    _t_done_87771: {}
2156
2157
0
    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));
2158
0
}
2159
2160
0
auto hlt_internal_HTTP_Reply::HTTP::Message::_t_parse_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>> {
2161
0
    auto _t_self = Message::_t_self();
2162
0
    ::hilti::rt::detail::checkStack();
2163
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:69:16-109:1");
2164
0
    ::hilti::rt::debug::indent("spicy"sv);
2165
0
    ::hilti::rt::stream::SafeConstIterator _t_begin_ = _t_cur.begin();
2166
0
    (*_t_self)._t_error = _t_error;
2167
0
      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:69:16-109:1");
2168
0
    (*_t_self)._t_on_0x25_init();
2169
0
    _t_error = (*_t_self)._t_error;
2170
0
    return (*_t_self)._t_parse_HTTP__Message_5_stage2(_t_data, _t_begin_, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error);
2171
0
}
2172
2173
0
auto hlt_internal_HTTP_Reply::HTTP::Replies::_t_parse_HTTP__Replies_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>> {
2174
0
    auto _t_self = Replies::_t_self();
2175
0
    ::hilti::rt::detail::checkStack();
2176
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:35:23-39:1");
2177
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:38:5-38:15");
2178
2179
    // Begin parsing production: While: _anon_4 -> while(<look-ahead-found>): Resolved_24;
2180
0
    ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*_t_self)._t_parse__anon_4_stage1(_t_data, _t_begin, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error));
2181
    // End parsing production: While: _anon_4 -> while(<look-ahead-found>): Resolved_24;
2182
2183
0
    ::hilti::rt::debug::dedent("spicy"sv);
2184
0
    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));
2185
0
}
2186
2187
0
auto hlt_internal_HTTP_Reply::HTTP::Replies::_t_parse__anon_4_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::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
2188
0
    auto _t_self = Replies::_t_self();
2189
0
    ::hilti::rt::detail::checkStack();
2190
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:38:5-38:15");
2191
0
    while ( ::hilti::rt::Bool{true} ) {
2192
0
        ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_32;
2193
0
        ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{1U}, (_t_lhs_32=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
2194
0
        if ( ! (::hilti::rt::Bool{static_cast<bool>(_t_lah)}) ) {
2195
0
            ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_33;
2196
0
            if ( ::spicy::rt::detail::atEod(_t_data, _t_cur, (_t_lhs_33=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{}))) ) {
2197
0
                _t_lah = ::hilti::rt::integer::safe<std::int64_t>{-1};
2198
0
            }
2199
0
            else {
2200
0
                ::hilti::rt::stream::View ncur = _t_cur;
2201
0
                for ( ::hilti::rt::regexp::MatchState ms = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_2.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
2202
0
                    ::hilti::rt::integer::safe<int32_t> rc;
2203
0
                      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:38:5-38:15");
2204
0
                    ::hilti::rt::tuple::assign(std::tie(rc, ncur), ms.advance(ncur));
2205
0
                    switch ( auto&& _t_x = rc; (_t_x).Ref() ) {
2206
0
                        case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
2207
0
                            ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_34;
2208
0
                            if ( ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_cur, (_t_lhs_34=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{}))) ) {
2209
0
                                continue;
2210
0
                            }
2211
2212
0
                            _t_lah = ::hilti::rt::integer::safe<std::int64_t>{-1};
2213
0
                            _t_lahe = _t_cur.begin();
2214
0
                            goto _t_done_53836;
2215
0
                        }
2216
0
                        case ::hilti::rt::integer::safe<std::int32_t>{0}: {
2217
0
                            ::spicy::rt::detail::printParserState("HTTP::Replies"sv, _t_data, ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>(_t_begin), _t_cur, _t_lah, _t_lahe, "default"sv, _t_trim, _t_error);
2218
0
                            _t_lah = ::hilti::rt::integer::safe<std::int64_t>{0};
2219
0
                            _t_lahe = _t_cur.begin();
2220
0
                            goto _t_done_53836;
2221
0
                        }
2222
0
                        default: {
2223
0
                            _t_lah = ::hilti::rt::integer::safe<int64_t>{rc};
2224
0
                            _t_lahe = ncur.begin();
2225
0
                            goto _t_done_53836;
2226
0
                        }
2227
0
                    }
2228
0
                }
2229
2230
0
                _t_done_53836: {}
2231
2232
0
                ::spicy::rt::detail::printParserState("HTTP::Replies"sv, _t_data, ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>(_t_begin), _t_cur, _t_lah, _t_lahe, "default"sv, _t_trim, _t_error);
2233
0
            }
2234
0
        }
2235
2236
0
        switch ( auto&& _t_x = _t_lah; (_t_x).Ref() ) {
2237
0
            case ::hilti::rt::integer::safe<std::int64_t>{-1}: goto _t_done_53712;
2238
0
            case ::hilti::rt::integer::safe<std::int64_t>{4}: {
2239
0
                ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_35;
2240
0
                ::hilti::rt::stream::SafeConstIterator _t_old_begin = _t_cur.begin();
2241
0
                hlt_internal_HTTP_Reply::HTTP::Reply _t_elem;
2242
0
                ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:41:14-44:1");
2243
2244
                // Begin parsing production: Unit: HTTP__Reply -> Resolved_25 Resolved_27 (container '_anon_4');
2245
0
                _t_elem = (hlt_internal_HTTP_Reply::HTTP::Reply{});
2246
0
                ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), _t_elem._t_parse_stage1(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error));
2247
                // End parsing production: Unit: HTTP__Reply -> Resolved_25 Resolved_27 (container '_anon_4');
2248
2249
0
                if ( (_t_cur.begin() == _t_old_begin) && (! (::spicy::rt::detail::atEod(_t_data, _t_cur, (_t_lhs_35=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{}))))) ) {
2250
0
                      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:38:5-38:15");
2251
0
                    throw ::spicy::rt::ParseError{"loop body did not change input position, possible infinite loop"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:38:5-38:15"};
2252
0
                }
2253
2254
0
                break;
2255
0
            }
2256
0
            default: goto _t_done_53712;
2257
0
        }
2258
0
    }
2259
2260
0
    _t_done_53712: {}
2261
2262
0
    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));
2263
0
}
2264
2265
0
auto hlt_internal_HTTP_Reply::HTTP::Replies::_t_parse_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>> {
2266
0
    auto _t_self = Replies::_t_self();
2267
0
    ::hilti::rt::detail::checkStack();
2268
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:35:23-39:1");
2269
0
    ::hilti::rt::debug::indent("spicy"sv);
2270
0
    ::hilti::rt::stream::SafeConstIterator _t_begin_ = _t_cur.begin();
2271
0
    return (*_t_self)._t_parse_HTTP__Replies_stage2(_t_data, _t_begin_, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error);
2272
0
}
2273
2274
0
auto hlt_internal_HTTP_Reply::HTTP::Replies::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 {
2275
0
    ::hilti::rt::detail::checkStack();
2276
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:35:23-39:1");
2277
0
    ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Replies> _t_unit = ::hilti::rt::reference::make_value<hlt_internal_HTTP_Reply::HTTP::Replies>((hlt_internal_HTTP_Reply::HTTP::Replies{}));
2278
0
    ::hilti::rt::stream::View _t_ncur = (_t_cur ? _t_cur.value() : (*_t_data).view());
2279
0
    ::hilti::rt::integer::safe<int64_t> _t_lahead = ::hilti::rt::integer::safe<std::int64_t>{0};
2280
0
    ::hilti::rt::stream::SafeConstIterator _t_lahead_end;
2281
0
    ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error = ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>{};
2282
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:35:23-39:1");
2283
2284
    // Begin parsing production: Unit: HTTP__Replies -> _anon_4;
2285
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, ::hilti::rt::Bool{true}, _t_lahead, _t_lahead_end, _t_error));
2286
    // End parsing production: Unit: HTTP__Replies -> _anon_4;
2287
2288
0
    if ( _t_error.hasValue() ) {
2289
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())};
2290
0
    }
2291
2292
0
    return _t_ncur;
2293
0
}
2294
2295
0
auto hlt_internal_HTTP_Reply::HTTP::Replies::parse2(::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Replies>& _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 {
2296
0
    ::hilti::rt::detail::checkStack();
2297
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:35:23-39:1");
2298
0
    ::hilti::rt::stream::View _t_ncur = (_t_cur ? _t_cur.value() : (*_t_data).view());
2299
0
    ::hilti::rt::integer::safe<int64_t> _t_lahead = ::hilti::rt::integer::safe<std::int64_t>{0};
2300
0
    ::hilti::rt::stream::SafeConstIterator _t_lahead_end;
2301
0
    ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error = ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>{};
2302
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:35:23-39:1");
2303
2304
    // Begin parsing production: Unit: HTTP__Replies -> _anon_4;
2305
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, ::hilti::rt::Bool{true}, _t_lahead, _t_lahead_end, _t_error));
2306
    // End parsing production: Unit: HTTP__Replies -> _anon_4;
2307
2308
0
    if ( _t_error.hasValue() ) {
2309
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())};
2310
0
    }
2311
2312
0
    return _t_ncur;
2313
0
}
2314
2315
0
auto hlt_internal_HTTP_Reply::HTTP::Replies::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 {
2316
0
    ::hilti::rt::detail::checkStack();
2317
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:35:23-39:1");
2318
0
    ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Replies> _t_unit = ::hilti::rt::reference::make_value<hlt_internal_HTTP_Reply::HTTP::Replies>((hlt_internal_HTTP_Reply::HTTP::Replies{}));
2319
0
    ::spicy::rt::ParsedUnit::initialize((*_t_gunit), _t_unit, &type_info::_t_ti_value_ref_HTTP__Replies__value_refx2anamex2aHTTP__Repliesx2bx2b);
2320
0
    ::hilti::rt::stream::View _t_ncur = (_t_cur ? _t_cur.value() : (*_t_data).view());
2321
0
    ::hilti::rt::integer::safe<int64_t> _t_lahead = ::hilti::rt::integer::safe<std::int64_t>{0};
2322
0
    ::hilti::rt::stream::SafeConstIterator _t_lahead_end;
2323
0
    ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error = ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>{};
2324
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:35:23-39:1");
2325
2326
    // Begin parsing production: Unit: HTTP__Replies -> _anon_4;
2327
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, ::hilti::rt::Bool{true}, _t_lahead, _t_lahead_end, _t_error));
2328
    // End parsing production: Unit: HTTP__Replies -> _anon_4;
2329
2330
0
    if ( _t_error.hasValue() ) {
2331
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())};
2332
0
    }
2333
2334
0
    return _t_ncur;
2335
0
}
2336
2337
0
auto hlt_internal_HTTP_Reply::HTTP::Reply::_t_parse_HTTP__Reply_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>> {
2338
0
    auto _t_self = Reply::_t_self();
2339
0
    ::hilti::rt::detail::checkStack();
2340
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:41:14-44:1");
2341
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:60:18-67:1");
2342
2343
    // Begin parsing production: Unit: HTTP__ReplyLine_2 -> Resolved_37 _anon_9_2 status_2 _anon_10_2 reason_2 _anon_11_2;
2344
0
    (*_t_self).reply.valueOrInit() = (hlt_internal_HTTP_Reply::HTTP::ReplyLine{});
2345
0
    ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*_t_self).reply.value()._t_parse_stage1(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error));
2346
    // End parsing production: Unit: HTTP__ReplyLine_2 -> Resolved_37 _anon_9_2 status_2 _anon_10_2 reason_2 _anon_11_2;
2347
2348
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:69:16-109:1");
2349
2350
    // Begin parsing production: Unit: HTTP__Message_4 -> headers_4 end_of_hdr_4 Resolved_41 (field 'message', id n/a, parser, args: (reply_code_needs_body(self.reply.status), False));
2351
0
    (*_t_self).message.valueOrInit() = (hlt_internal_HTTP_Reply::HTTP::Message{::hilti::rt::struct_::tag::Parameters(), reply_code_needs_body((*_t_self).reply.value().status.value()), ::hilti::rt::Bool{false}});
2352
0
    ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*(*_t_self).message.value())._t_parse_stage1(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error));
2353
    // End parsing production: Unit: HTTP__Message_4 -> headers_4 end_of_hdr_4 Resolved_41 (field 'message', id n/a, parser, args: (reply_code_needs_body(self.reply.status), False));
2354
2355
0
    ::hilti::rt::debug::dedent("spicy"sv);
2356
0
    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));
2357
0
}
2358
2359
0
auto hlt_internal_HTTP_Reply::HTTP::Reply::_t_parse_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>> {
2360
0
    auto _t_self = Reply::_t_self();
2361
0
    ::hilti::rt::detail::checkStack();
2362
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:41:14-44:1");
2363
0
    ::hilti::rt::debug::indent("spicy"sv);
2364
0
    ::hilti::rt::stream::SafeConstIterator _t_begin_ = _t_cur.begin();
2365
0
    return (*_t_self)._t_parse_HTTP__Reply_2_stage2(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error);
2366
0
}
2367
2368
0
auto hlt_internal_HTTP_Reply::HTTP::ReplyLine::_t_parse_HTTP__ReplyLine_3_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>> {
2369
0
    auto _t_self = ReplyLine::_t_self();
2370
0
    ::hilti::rt::detail::checkStack();
2371
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:60:18-67:1");
2372
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:46:16-49:1");
2373
2374
    // Begin parsing production: Unit: HTTP__Version_7 -> _anon_5_7 number_7;
2375
0
    (*_t_self).version.valueOrInit() = (hlt_internal_HTTP_Reply::HTTP::Version{});
2376
0
    ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*_t_self).version.value()._t_parse_stage1(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error));
2377
    // End parsing production: Unit: HTTP__Version_7 -> _anon_5_7 number_7;
2378
2379
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:17:20-17:27");
2380
2381
    // Begin parsing production: Ctor: _anon_9_3 -> /[ \t]+/ (regexp);
2382
0
    ::hilti::rt::stream::View _t_ncur = _t_cur;
2383
0
    for ( ::hilti::rt::regexp::MatchState ms = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_6.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
2384
0
        ::hilti::rt::integer::safe<int32_t> _t_rc;
2385
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:17:20-17:27");
2386
0
        ::hilti::rt::tuple::assign(std::tie(_t_rc, _t_ncur), ms.advance(_t_ncur));
2387
0
        switch ( auto&& _t_x = _t_rc; (_t_x).Ref() ) {
2388
0
            case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
2389
0
                ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_36;
2390
                // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores);
2391
0
                ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_ncur, (_t_lhs_36=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
2392
0
                continue;
2393
0
            }
2394
0
            case ::hilti::rt::integer::safe<std::int32_t>{0}: {
2395
0
                  ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:17:20-17:27");
2396
0
                throw ::spicy::rt::ParseError{"failed to match regular expression"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:17:20-17:27"};
2397
0
            }
2398
0
            default: {
2399
0
                ms.captures(_t_cur);
2400
0
                _t_cur.sub(_t_ncur.begin()).data();
2401
0
                _t_cur = _t_ncur;
2402
0
                if ( _t_trim ) {
2403
0
                    (*_t_data).trim(_t_ncur.begin());
2404
0
                }
2405
2406
0
                goto _t_done_77617;
2407
0
            }
2408
0
        }
2409
0
    }
2410
2411
0
    _t_done_77617: {}
2412
2413
    // End parsing production: Ctor: _anon_9_3 -> /[ \t]+/ (regexp);
2414
2415
0
    ::hilti::rt::integer::safe<uint64_t> _t_v_status;
2416
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:15:20-15:27");
2417
0
    ::hilti::rt::Bytes _t_parsed_status;
2418
2419
    // Begin parsing production: Ctor: status_3 -> /[0-9]+/ (regexp);
2420
0
    ::hilti::rt::stream::View _t_ncur_ = _t_cur;
2421
0
    for ( ::hilti::rt::regexp::MatchState ms = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_8.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
2422
0
        ::hilti::rt::integer::safe<int32_t> _t_rc;
2423
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:15:20-15:27");
2424
0
        ::hilti::rt::tuple::assign(std::tie(_t_rc, _t_ncur_), ms.advance(_t_ncur_));
2425
0
        switch ( auto&& _t_x = _t_rc; (_t_x).Ref() ) {
2426
0
            case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
2427
0
                ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_37;
2428
                // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores);
2429
0
                ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_ncur_, (_t_lhs_37=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
2430
0
                continue;
2431
0
            }
2432
0
            case ::hilti::rt::integer::safe<std::int32_t>{0}: {
2433
0
                  ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:15:20-15:27");
2434
0
                throw ::spicy::rt::ParseError{"failed to match regular expression"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:15:20-15:27"};
2435
0
            }
2436
0
            default: {
2437
0
                ms.captures(_t_cur);
2438
0
                _t_parsed_status = _t_cur.sub(_t_ncur_.begin()).data();
2439
0
                _t_cur = _t_ncur_;
2440
0
                if ( _t_trim ) {
2441
0
                    (*_t_data).trim(_t_ncur_.begin());
2442
0
                }
2443
2444
0
                goto _t_done_77983;
2445
0
            }
2446
0
        }
2447
0
    }
2448
2449
0
    _t_done_77983: {}
2450
2451
    // End parsing production: Ctor: status_3 -> /[0-9]+/ (regexp);
2452
2453
0
    _t_v_status = _t_parsed_status.toUInt();
2454
0
    (*_t_self).status.valueOrInit() = _t_v_status;
2455
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:18:28-18:35");
2456
2457
    // Begin parsing production: Ctor: _anon_10_3 -> /[ \t]*/ (regexp);
2458
0
    ::hilti::rt::stream::View _t_ncur_2 = _t_cur;
2459
0
    for ( ::hilti::rt::regexp::MatchState ms = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_9.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
2460
0
        ::hilti::rt::integer::safe<int32_t> _t_rc;
2461
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:18:28-18:35");
2462
0
        ::hilti::rt::tuple::assign(std::tie(_t_rc, _t_ncur_2), ms.advance(_t_ncur_2));
2463
0
        switch ( auto&& _t_x = _t_rc; (_t_x).Ref() ) {
2464
0
            case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
2465
0
                ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_38;
2466
                // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores);
2467
0
                ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_ncur_2, (_t_lhs_38=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
2468
0
                continue;
2469
0
            }
2470
0
            case ::hilti::rt::integer::safe<std::int32_t>{0}: {
2471
0
                  ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:18:28-18:35");
2472
0
                throw ::spicy::rt::ParseError{"failed to match regular expression"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:18:28-18:35"};
2473
0
            }
2474
0
            default: {
2475
0
                ms.captures(_t_cur);
2476
0
                _t_cur.sub(_t_ncur_2.begin()).data();
2477
0
                _t_cur = _t_ncur_2;
2478
0
                if ( _t_trim ) {
2479
0
                    (*_t_data).trim(_t_ncur_2.begin());
2480
0
                }
2481
2482
0
                goto _t_done_78568;
2483
0
            }
2484
0
        }
2485
0
    }
2486
2487
0
    _t_done_78568: {}
2488
2489
    // End parsing production: Ctor: _anon_10_3 -> /[ \t]*/ (regexp);
2490
2491
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:13:20-13:29");
2492
2493
    // Begin parsing production: Ctor: reason_3 -> /[^\r\n]*/ (regexp);
2494
0
    ::hilti::rt::stream::View _t_ncur__ = _t_cur;
2495
0
    for ( ::hilti::rt::regexp::MatchState ms_ = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_10.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
2496
0
        ::hilti::rt::integer::safe<int32_t> _t_rc_;
2497
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:13:20-13:29");
2498
0
        ::hilti::rt::tuple::assign(std::tie(_t_rc_, _t_ncur__), ms_.advance(_t_ncur__));
2499
0
        switch ( auto&& _t_x_ = _t_rc_; (_t_x_).Ref() ) {
2500
0
            case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
2501
0
                ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_39;
2502
                // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores);
2503
0
                ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_ncur__, (_t_lhs_39=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
2504
0
                continue;
2505
0
            }
2506
0
            case ::hilti::rt::integer::safe<std::int32_t>{0}: {
2507
0
                  ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:13:20-13:29");
2508
0
                throw ::spicy::rt::ParseError{"failed to match regular expression"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:13:20-13:29"};
2509
0
            }
2510
0
            default: {
2511
0
                ms_.captures(_t_cur);
2512
0
                _t_cur.sub(_t_ncur__.begin()).data();
2513
0
                _t_cur = _t_ncur__;
2514
0
                if ( _t_trim ) {
2515
0
                    (*_t_data).trim(_t_ncur__.begin());
2516
0
                }
2517
2518
0
                goto _t_done_78925;
2519
0
            }
2520
0
        }
2521
0
    }
2522
2523
0
    _t_done_78925: {}
2524
2525
    // End parsing production: Ctor: reason_3 -> /[^\r\n]*/ (regexp);
2526
2527
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
2528
2529
    // Begin parsing production: Ctor: _anon_11_3 -> /\r?\n/ (regexp);
2530
0
    if ( ::hilti::rt::Bool{static_cast<bool>(_t_lah)} ) {
2531
0
        if ( _t_lah != ::hilti::rt::integer::safe<std::int64_t>{1} ) {
2532
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
2533
0
            throw ::spicy::rt::ParseError{"unexpected token to consume"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26"};
2534
0
        }
2535
2536
0
        _t_cur.sub(_t_lahe).data();
2537
0
        _t_lah = ::hilti::rt::integer::safe<std::int64_t>{0};
2538
0
        _t_cur = _t_cur.advance(_t_lahe);
2539
0
        if ( _t_trim ) {
2540
0
            (*_t_data).trim(_t_cur.begin());
2541
0
        }
2542
0
    }
2543
0
    else {
2544
0
        ::hilti::rt::stream::View _t_ncur = _t_cur;
2545
0
        for ( ::hilti::rt::regexp::MatchState ms = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_7.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
2546
0
            ::hilti::rt::integer::safe<int32_t> _t_rc;
2547
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
2548
0
            ::hilti::rt::tuple::assign(std::tie(_t_rc, _t_ncur), ms.advance(_t_ncur));
2549
0
            switch ( auto&& _t_x = _t_rc; (_t_x).Ref() ) {
2550
0
                case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
2551
0
                    ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_40;
2552
                    // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores);
2553
0
                    ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_ncur, (_t_lhs_40=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
2554
0
                    continue;
2555
0
                }
2556
0
                case ::hilti::rt::integer::safe<std::int32_t>{0}: {
2557
0
                      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
2558
0
                    throw ::spicy::rt::ParseError{"failed to match regular expression"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26"};
2559
0
                }
2560
0
                default: {
2561
0
                    ms.captures(_t_cur);
2562
0
                    _t_cur.sub(_t_ncur.begin()).data();
2563
0
                    _t_cur = _t_ncur;
2564
0
                    if ( _t_trim ) {
2565
0
                        (*_t_data).trim(_t_ncur.begin());
2566
0
                    }
2567
2568
0
                    goto _t_done_79569;
2569
0
                }
2570
0
            }
2571
0
        }
2572
2573
0
        _t_done_79569: {}
2574
2575
0
    }
2576
2577
    // End parsing production: Ctor: _anon_11_3 -> /\r?\n/ (regexp);
2578
2579
0
    ::hilti::rt::debug::dedent("spicy"sv);
2580
0
    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));
2581
0
}
2582
2583
0
auto hlt_internal_HTTP_Reply::HTTP::ReplyLine::_t_parse_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>> {
2584
0
    auto _t_self = ReplyLine::_t_self();
2585
0
    ::hilti::rt::detail::checkStack();
2586
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:60:18-67:1");
2587
0
    ::hilti::rt::debug::indent("spicy"sv);
2588
0
    ::hilti::rt::stream::SafeConstIterator _t_begin_ = _t_cur.begin();
2589
0
    return (*_t_self)._t_parse_HTTP__ReplyLine_3_stage2(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error);
2590
0
}
2591
2592
0
auto hlt_internal_HTTP_Reply::HTTP::Request::_t_parse_HTTP__Request_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>> {
2593
0
    auto _t_self = Request::_t_self();
2594
0
    ::hilti::rt::detail::checkStack();
2595
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:30:16-33:1");
2596
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:51:20-58:1");
2597
2598
    // Begin parsing production: Unit: HTTP__RequestLine_2 -> method_2 _anon_6_2 uri_2 _anon_7_2 Resolved_15 _anon_8_2;
2599
0
    (*_t_self).request.valueOrInit() = (hlt_internal_HTTP_Reply::HTTP::RequestLine{});
2600
0
    ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*_t_self).request.value()._t_parse_stage1(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error));
2601
    // End parsing production: Unit: HTTP__RequestLine_2 -> method_2 _anon_6_2 uri_2 _anon_7_2 Resolved_15 _anon_8_2;
2602
2603
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:69:16-109:1");
2604
2605
    // Begin parsing production: Unit: HTTP__Message_2 -> headers_2 end_of_hdr_2 Resolved_19 (field 'message', id n/a, parser, args: (False, True));
2606
0
    (*_t_self).message.valueOrInit() = (hlt_internal_HTTP_Reply::HTTP::Message{::hilti::rt::struct_::tag::Parameters(), ::hilti::rt::Bool{false}, ::hilti::rt::Bool{true}});
2607
0
    ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*(*_t_self).message.value())._t_parse_stage1(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error));
2608
    // End parsing production: Unit: HTTP__Message_2 -> headers_2 end_of_hdr_2 Resolved_19 (field 'message', id n/a, parser, args: (False, True));
2609
2610
0
    ::hilti::rt::debug::dedent("spicy"sv);
2611
0
    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));
2612
0
}
2613
2614
0
auto hlt_internal_HTTP_Reply::HTTP::Request::_t_parse_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>> {
2615
0
    auto _t_self = Request::_t_self();
2616
0
    ::hilti::rt::detail::checkStack();
2617
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:30:16-33:1");
2618
0
    ::hilti::rt::debug::indent("spicy"sv);
2619
0
    ::hilti::rt::stream::SafeConstIterator _t_begin_ = _t_cur.begin();
2620
0
    return (*_t_self)._t_parse_HTTP__Request_2_stage2(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error);
2621
0
}
2622
2623
0
auto hlt_internal_HTTP_Reply::HTTP::RequestLine::_t_parse_HTTP__RequestLine_3_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>> {
2624
0
    auto _t_self = RequestLine::_t_self();
2625
0
    ::hilti::rt::detail::checkStack();
2626
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:51:20-58:1");
2627
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:10:20-10:32");
2628
2629
    // Begin parsing production: Ctor: method_3 -> /[^ \t\r\n]+/ (regexp);
2630
0
    if ( ::hilti::rt::Bool{static_cast<bool>(_t_lah)} ) {
2631
0
        if ( _t_lah != ::hilti::rt::integer::safe<std::int64_t>{3} ) {
2632
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:10:20-10:32");
2633
0
            throw ::spicy::rt::ParseError{"unexpected token to consume"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:10:20-10:32"};
2634
0
        }
2635
2636
0
        _t_cur.sub(_t_lahe).data();
2637
0
        _t_lah = ::hilti::rt::integer::safe<std::int64_t>{0};
2638
0
        _t_cur = _t_cur.advance(_t_lahe);
2639
0
        if ( _t_trim ) {
2640
0
            (*_t_data).trim(_t_cur.begin());
2641
0
        }
2642
0
    }
2643
0
    else {
2644
0
        ::hilti::rt::stream::View _t_ncur_ = _t_cur;
2645
0
        for ( ::hilti::rt::regexp::MatchState ms = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_5.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
2646
0
            ::hilti::rt::integer::safe<int32_t> _t_rc;
2647
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:10:20-10:32");
2648
0
            ::hilti::rt::tuple::assign(std::tie(_t_rc, _t_ncur_), ms.advance(_t_ncur_));
2649
0
            switch ( auto&& _t_x = _t_rc; (_t_x).Ref() ) {
2650
0
                case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
2651
0
                    ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_41;
2652
                    // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores);
2653
0
                    ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_ncur_, (_t_lhs_41=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
2654
0
                    continue;
2655
0
                }
2656
0
                case ::hilti::rt::integer::safe<std::int32_t>{0}: {
2657
0
                      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:10:20-10:32");
2658
0
                    throw ::spicy::rt::ParseError{"failed to match regular expression"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:10:20-10:32"};
2659
0
                }
2660
0
                default: {
2661
0
                    ms.captures(_t_cur);
2662
0
                    _t_cur.sub(_t_ncur_.begin()).data();
2663
0
                    _t_cur = _t_ncur_;
2664
0
                    if ( _t_trim ) {
2665
0
                        (*_t_data).trim(_t_ncur_.begin());
2666
0
                    }
2667
2668
0
                    goto _t_done_70259;
2669
0
                }
2670
0
            }
2671
0
        }
2672
2673
0
        _t_done_70259: {}
2674
2675
0
    }
2676
2677
    // End parsing production: Ctor: method_3 -> /[^ \t\r\n]+/ (regexp);
2678
2679
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:17:20-17:27");
2680
2681
    // Begin parsing production: Ctor: _anon_6_3 -> /[ \t]+/ (regexp);
2682
0
    ::hilti::rt::stream::View _t_ncur = _t_cur;
2683
0
    for ( ::hilti::rt::regexp::MatchState ms = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_6.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
2684
0
        ::hilti::rt::integer::safe<int32_t> _t_rc;
2685
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:17:20-17:27");
2686
0
        ::hilti::rt::tuple::assign(std::tie(_t_rc, _t_ncur), ms.advance(_t_ncur));
2687
0
        switch ( auto&& _t_x = _t_rc; (_t_x).Ref() ) {
2688
0
            case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
2689
0
                ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_42;
2690
                // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores);
2691
0
                ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_ncur, (_t_lhs_42=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
2692
0
                continue;
2693
0
            }
2694
0
            case ::hilti::rt::integer::safe<std::int32_t>{0}: {
2695
0
                  ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:17:20-17:27");
2696
0
                throw ::spicy::rt::ParseError{"failed to match regular expression"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:17:20-17:27"};
2697
0
            }
2698
0
            default: {
2699
0
                ms.captures(_t_cur);
2700
0
                _t_cur.sub(_t_ncur.begin()).data();
2701
0
                _t_cur = _t_ncur;
2702
0
                if ( _t_trim ) {
2703
0
                    (*_t_data).trim(_t_ncur.begin());
2704
0
                }
2705
2706
0
                goto _t_done_70808;
2707
0
            }
2708
0
        }
2709
0
    }
2710
2711
0
    _t_done_70808: {}
2712
2713
    // End parsing production: Ctor: _anon_6_3 -> /[ \t]+/ (regexp);
2714
2715
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:11:20-11:32");
2716
2717
    // Begin parsing production: Ctor: uri_3 -> /[^ \t\r\n]+/ (regexp);
2718
0
    if ( ::hilti::rt::Bool{static_cast<bool>(_t_lah)} ) {
2719
0
        if ( _t_lah != ::hilti::rt::integer::safe<std::int64_t>{3} ) {
2720
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:11:20-11:32");
2721
0
            throw ::spicy::rt::ParseError{"unexpected token to consume"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:11:20-11:32"};
2722
0
        }
2723
2724
0
        _t_cur.sub(_t_lahe).data();
2725
0
        _t_lah = ::hilti::rt::integer::safe<std::int64_t>{0};
2726
0
        _t_cur = _t_cur.advance(_t_lahe);
2727
0
        if ( _t_trim ) {
2728
0
            (*_t_data).trim(_t_cur.begin());
2729
0
        }
2730
0
    }
2731
0
    else {
2732
0
        ::hilti::rt::stream::View _t_ncur__ = _t_cur;
2733
0
        for ( ::hilti::rt::regexp::MatchState ms_ = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_5.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
2734
0
            ::hilti::rt::integer::safe<int32_t> _t_rc_;
2735
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:11:20-11:32");
2736
0
            ::hilti::rt::tuple::assign(std::tie(_t_rc_, _t_ncur__), ms_.advance(_t_ncur__));
2737
0
            switch ( auto&& _t_x_ = _t_rc_; (_t_x_).Ref() ) {
2738
0
                case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
2739
0
                    ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_43;
2740
                    // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores);
2741
0
                    ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_ncur__, (_t_lhs_43=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
2742
0
                    continue;
2743
0
                }
2744
0
                case ::hilti::rt::integer::safe<std::int32_t>{0}: {
2745
0
                      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:11:20-11:32");
2746
0
                    throw ::spicy::rt::ParseError{"failed to match regular expression"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:11:20-11:32"};
2747
0
                }
2748
0
                default: {
2749
0
                    ms_.captures(_t_cur);
2750
0
                    _t_cur.sub(_t_ncur__.begin()).data();
2751
0
                    _t_cur = _t_ncur__;
2752
0
                    if ( _t_trim ) {
2753
0
                        (*_t_data).trim(_t_ncur__.begin());
2754
0
                    }
2755
2756
0
                    goto _t_done_71263;
2757
0
                }
2758
0
            }
2759
0
        }
2760
2761
0
        _t_done_71263: {}
2762
2763
0
    }
2764
2765
    // End parsing production: Ctor: uri_3 -> /[^ \t\r\n]+/ (regexp);
2766
2767
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:17:20-17:27");
2768
2769
    // Begin parsing production: Ctor: _anon_7_3 -> /[ \t]+/ (regexp);
2770
0
    ::hilti::rt::stream::View _t_ncur_2 = _t_cur;
2771
0
    for ( ::hilti::rt::regexp::MatchState ms = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_6.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
2772
0
        ::hilti::rt::integer::safe<int32_t> _t_rc;
2773
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:17:20-17:27");
2774
0
        ::hilti::rt::tuple::assign(std::tie(_t_rc, _t_ncur_2), ms.advance(_t_ncur_2));
2775
0
        switch ( auto&& _t_x = _t_rc; (_t_x).Ref() ) {
2776
0
            case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
2777
0
                ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_44;
2778
                // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores);
2779
0
                ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_ncur_2, (_t_lhs_44=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
2780
0
                continue;
2781
0
            }
2782
0
            case ::hilti::rt::integer::safe<std::int32_t>{0}: {
2783
0
                  ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:17:20-17:27");
2784
0
                throw ::spicy::rt::ParseError{"failed to match regular expression"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:17:20-17:27"};
2785
0
            }
2786
0
            default: {
2787
0
                ms.captures(_t_cur);
2788
0
                _t_cur.sub(_t_ncur_2.begin()).data();
2789
0
                _t_cur = _t_ncur_2;
2790
0
                if ( _t_trim ) {
2791
0
                    (*_t_data).trim(_t_ncur_2.begin());
2792
0
                }
2793
2794
0
                goto _t_done_71816;
2795
0
            }
2796
0
        }
2797
0
    }
2798
2799
0
    _t_done_71816: {}
2800
2801
    // End parsing production: Ctor: _anon_7_3 -> /[ \t]+/ (regexp);
2802
2803
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:46:16-49:1");
2804
2805
    // Begin parsing production: Unit: HTTP__Version_6 -> _anon_5_6 number_6;
2806
0
    (*_t_self).version.valueOrInit() = (hlt_internal_HTTP_Reply::HTTP::Version{});
2807
0
    ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*_t_self).version.value()._t_parse_stage1(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error));
2808
    // End parsing production: Unit: HTTP__Version_6 -> _anon_5_6 number_6;
2809
2810
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
2811
2812
    // Begin parsing production: Ctor: _anon_8_3 -> /\r?\n/ (regexp);
2813
0
    if ( ::hilti::rt::Bool{static_cast<bool>(_t_lah)} ) {
2814
0
        if ( _t_lah != ::hilti::rt::integer::safe<std::int64_t>{1} ) {
2815
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
2816
0
            throw ::spicy::rt::ParseError{"unexpected token to consume"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26"};
2817
0
        }
2818
2819
0
        _t_cur.sub(_t_lahe).data();
2820
0
        _t_lah = ::hilti::rt::integer::safe<std::int64_t>{0};
2821
0
        _t_cur = _t_cur.advance(_t_lahe);
2822
0
        if ( _t_trim ) {
2823
0
            (*_t_data).trim(_t_cur.begin());
2824
0
        }
2825
0
    }
2826
0
    else {
2827
0
        ::hilti::rt::stream::View _t_ncur = _t_cur;
2828
0
        for ( ::hilti::rt::regexp::MatchState ms = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_7.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
2829
0
            ::hilti::rt::integer::safe<int32_t> _t_rc;
2830
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
2831
0
            ::hilti::rt::tuple::assign(std::tie(_t_rc, _t_ncur), ms.advance(_t_ncur));
2832
0
            switch ( auto&& _t_x = _t_rc; (_t_x).Ref() ) {
2833
0
                case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
2834
0
                    ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_45;
2835
                    // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores);
2836
0
                    ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_ncur, (_t_lhs_45=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
2837
0
                    continue;
2838
0
                }
2839
0
                case ::hilti::rt::integer::safe<std::int32_t>{0}: {
2840
0
                      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26");
2841
0
                    throw ::spicy::rt::ParseError{"failed to match regular expression"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:12:20-12:26"};
2842
0
                }
2843
0
                default: {
2844
0
                    ms.captures(_t_cur);
2845
0
                    _t_cur.sub(_t_ncur.begin()).data();
2846
0
                    _t_cur = _t_ncur;
2847
0
                    if ( _t_trim ) {
2848
0
                        (*_t_data).trim(_t_ncur.begin());
2849
0
                    }
2850
2851
0
                    goto _t_done_72633;
2852
0
                }
2853
0
            }
2854
0
        }
2855
2856
0
        _t_done_72633: {}
2857
2858
0
    }
2859
2860
    // End parsing production: Ctor: _anon_8_3 -> /\r?\n/ (regexp);
2861
2862
0
    ::hilti::rt::debug::dedent("spicy"sv);
2863
0
    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));
2864
0
}
2865
2866
0
auto hlt_internal_HTTP_Reply::HTTP::RequestLine::_t_parse_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>> {
2867
0
    auto _t_self = RequestLine::_t_self();
2868
0
    ::hilti::rt::detail::checkStack();
2869
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:51:20-58:1");
2870
0
    ::hilti::rt::debug::indent("spicy"sv);
2871
0
    ::hilti::rt::stream::SafeConstIterator _t_begin_ = _t_cur.begin();
2872
0
    return (*_t_self)._t_parse_HTTP__RequestLine_3_stage2(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error);
2873
0
}
2874
2875
0
auto hlt_internal_HTTP_Reply::HTTP::Requests::_t_parse_HTTP__Requests_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>> {
2876
0
    auto _t_self = Requests::_t_self();
2877
0
    ::hilti::rt::detail::checkStack();
2878
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:24:24-28:1");
2879
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:27:5-27:17");
2880
2881
    // Begin parsing production: While: _anon_2 -> while(<look-ahead-found>): Resolved_2;
2882
0
    ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), (*_t_self)._t_parse__anon_2_stage1(_t_data, _t_begin, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error));
2883
    // End parsing production: While: _anon_2 -> while(<look-ahead-found>): Resolved_2;
2884
2885
0
    ::hilti::rt::debug::dedent("spicy"sv);
2886
0
    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));
2887
0
}
2888
2889
0
auto hlt_internal_HTTP_Reply::HTTP::Requests::_t_parse__anon_2_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::Tuple<::hilti::rt::stream::View, ::hilti::rt::integer::safe<int64_t>, ::hilti::rt::stream::SafeConstIterator, ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>> {
2890
0
    auto _t_self = Requests::_t_self();
2891
0
    ::hilti::rt::detail::checkStack();
2892
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:27:5-27:17");
2893
0
    while ( ::hilti::rt::Bool{true} ) {
2894
0
        ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_46;
2895
0
        ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_cur, ::hilti::rt::integer::safe<std::uint64_t>{1U}, (_t_lhs_46=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
2896
0
        if ( ! (::hilti::rt::Bool{static_cast<bool>(_t_lah)}) ) {
2897
0
            ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_47;
2898
0
            if ( ::spicy::rt::detail::atEod(_t_data, _t_cur, (_t_lhs_47=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{}))) ) {
2899
0
                _t_lah = ::hilti::rt::integer::safe<std::int64_t>{-1};
2900
0
            }
2901
0
            else {
2902
0
                ::hilti::rt::stream::View ncur = _t_cur;
2903
0
                for ( ::hilti::rt::regexp::MatchState ms = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
2904
0
                    ::hilti::rt::integer::safe<int32_t> rc;
2905
0
                      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:27:5-27:17");
2906
0
                    ::hilti::rt::tuple::assign(std::tie(rc, ncur), ms.advance(ncur));
2907
0
                    switch ( auto&& _t_x = rc; (_t_x).Ref() ) {
2908
0
                        case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
2909
0
                            ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_48;
2910
0
                            if ( ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_cur, (_t_lhs_48=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{}))) ) {
2911
0
                                continue;
2912
0
                            }
2913
2914
0
                            _t_lah = ::hilti::rt::integer::safe<std::int64_t>{-1};
2915
0
                            _t_lahe = _t_cur.begin();
2916
0
                            goto _t_done_42571;
2917
0
                        }
2918
0
                        case ::hilti::rt::integer::safe<std::int32_t>{0}: {
2919
0
                            ::spicy::rt::detail::printParserState("HTTP::Requests"sv, _t_data, ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>(_t_begin), _t_cur, _t_lah, _t_lahe, "default"sv, _t_trim, _t_error);
2920
0
                            _t_lah = ::hilti::rt::integer::safe<std::int64_t>{0};
2921
0
                            _t_lahe = _t_cur.begin();
2922
0
                            goto _t_done_42571;
2923
0
                        }
2924
0
                        default: {
2925
0
                            _t_lah = ::hilti::rt::integer::safe<int64_t>{rc};
2926
0
                            _t_lahe = ncur.begin();
2927
0
                            goto _t_done_42571;
2928
0
                        }
2929
0
                    }
2930
0
                }
2931
2932
0
                _t_done_42571: {}
2933
2934
0
                ::spicy::rt::detail::printParserState("HTTP::Requests"sv, _t_data, ::hilti::rt::Optional<::hilti::rt::stream::SafeConstIterator>(_t_begin), _t_cur, _t_lah, _t_lahe, "default"sv, _t_trim, _t_error);
2935
0
            }
2936
0
        }
2937
2938
0
        switch ( auto&& _t_x = _t_lah; (_t_x).Ref() ) {
2939
0
            case ::hilti::rt::integer::safe<std::int64_t>{-1}: goto _t_done_42447;
2940
0
            case ::hilti::rt::integer::safe<std::int64_t>{3}: {
2941
0
                ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_49;
2942
0
                ::hilti::rt::stream::SafeConstIterator _t_old_begin = _t_cur.begin();
2943
0
                hlt_internal_HTTP_Reply::HTTP::Request _t_elem;
2944
0
                ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:30:16-33:1");
2945
2946
                // Begin parsing production: Unit: HTTP__Request -> Resolved_3 Resolved_5 (container '_anon_2');
2947
0
                _t_elem = (hlt_internal_HTTP_Reply::HTTP::Request{});
2948
0
                ::hilti::rt::tuple::assign(std::tie(_t_cur, _t_lah, _t_lahe, _t_error), _t_elem._t_parse_stage1(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error));
2949
                // End parsing production: Unit: HTTP__Request -> Resolved_3 Resolved_5 (container '_anon_2');
2950
2951
0
                if ( (_t_cur.begin() == _t_old_begin) && (! (::spicy::rt::detail::atEod(_t_data, _t_cur, (_t_lhs_49=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{}))))) ) {
2952
0
                      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:27:5-27:17");
2953
0
                    throw ::spicy::rt::ParseError{"loop body did not change input position, possible infinite loop"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:27:5-27:17"};
2954
0
                }
2955
2956
0
                break;
2957
0
            }
2958
0
            default: goto _t_done_42447;
2959
0
        }
2960
0
    }
2961
2962
0
    _t_done_42447: {}
2963
2964
0
    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));
2965
0
}
2966
2967
0
auto hlt_internal_HTTP_Reply::HTTP::Requests::_t_parse_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>> {
2968
0
    auto _t_self = Requests::_t_self();
2969
0
    ::hilti::rt::detail::checkStack();
2970
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:24:24-28:1");
2971
0
    ::hilti::rt::debug::indent("spicy"sv);
2972
0
    ::hilti::rt::stream::SafeConstIterator _t_begin_ = _t_cur.begin();
2973
0
    return (*_t_self)._t_parse_HTTP__Requests_stage2(_t_data, _t_begin_, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error);
2974
0
}
2975
2976
0
auto hlt_internal_HTTP_Reply::HTTP::Requests::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 {
2977
0
    ::hilti::rt::detail::checkStack();
2978
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:24:24-28:1");
2979
0
    ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Requests> _t_unit = ::hilti::rt::reference::make_value<hlt_internal_HTTP_Reply::HTTP::Requests>((hlt_internal_HTTP_Reply::HTTP::Requests{}));
2980
0
    ::hilti::rt::stream::View _t_ncur = (_t_cur ? _t_cur.value() : (*_t_data).view());
2981
0
    ::hilti::rt::integer::safe<int64_t> _t_lahead = ::hilti::rt::integer::safe<std::int64_t>{0};
2982
0
    ::hilti::rt::stream::SafeConstIterator _t_lahead_end;
2983
0
    ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error = ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>{};
2984
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:24:24-28:1");
2985
2986
    // Begin parsing production: Unit: HTTP__Requests -> _anon_2;
2987
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, ::hilti::rt::Bool{true}, _t_lahead, _t_lahead_end, _t_error));
2988
    // End parsing production: Unit: HTTP__Requests -> _anon_2;
2989
2990
0
    if ( _t_error.hasValue() ) {
2991
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())};
2992
0
    }
2993
2994
0
    return _t_ncur;
2995
0
}
2996
2997
0
auto hlt_internal_HTTP_Reply::HTTP::Requests::parse2(::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Requests>& _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 {
2998
0
    ::hilti::rt::detail::checkStack();
2999
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:24:24-28:1");
3000
0
    ::hilti::rt::stream::View _t_ncur = (_t_cur ? _t_cur.value() : (*_t_data).view());
3001
0
    ::hilti::rt::integer::safe<int64_t> _t_lahead = ::hilti::rt::integer::safe<std::int64_t>{0};
3002
0
    ::hilti::rt::stream::SafeConstIterator _t_lahead_end;
3003
0
    ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error = ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>{};
3004
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:24:24-28:1");
3005
3006
    // Begin parsing production: Unit: HTTP__Requests -> _anon_2;
3007
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, ::hilti::rt::Bool{true}, _t_lahead, _t_lahead_end, _t_error));
3008
    // End parsing production: Unit: HTTP__Requests -> _anon_2;
3009
3010
0
    if ( _t_error.hasValue() ) {
3011
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())};
3012
0
    }
3013
3014
0
    return _t_ncur;
3015
0
}
3016
3017
0
auto hlt_internal_HTTP_Reply::HTTP::Requests::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 {
3018
0
    ::hilti::rt::detail::checkStack();
3019
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:24:24-28:1");
3020
0
    ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Requests> _t_unit = ::hilti::rt::reference::make_value<hlt_internal_HTTP_Reply::HTTP::Requests>((hlt_internal_HTTP_Reply::HTTP::Requests{}));
3021
0
    ::spicy::rt::ParsedUnit::initialize((*_t_gunit), _t_unit, &type_info::_t_ti_value_ref_HTTP__Requests__value_refx2anamex2aHTTP__Requestsx2bx2b);
3022
0
    ::hilti::rt::stream::View _t_ncur = (_t_cur ? _t_cur.value() : (*_t_data).view());
3023
0
    ::hilti::rt::integer::safe<int64_t> _t_lahead = ::hilti::rt::integer::safe<std::int64_t>{0};
3024
0
    ::hilti::rt::stream::SafeConstIterator _t_lahead_end;
3025
0
    ::hilti::rt::Optional<::hilti::rt::RecoverableFailure> _t_error = ::hilti::rt::Optional<::hilti::rt::RecoverableFailure>{};
3026
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:24:24-28:1");
3027
3028
    // Begin parsing production: Unit: HTTP__Requests -> _anon_2;
3029
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, ::hilti::rt::Bool{true}, _t_lahead, _t_lahead_end, _t_error));
3030
    // End parsing production: Unit: HTTP__Requests -> _anon_2;
3031
3032
0
    if ( _t_error.hasValue() ) {
3033
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())};
3034
0
    }
3035
3036
0
    return _t_ncur;
3037
0
}
3038
3039
0
auto hlt_internal_HTTP_Reply::HTTP::Version::_t_parse_HTTP__Version_5_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>> {
3040
0
    auto _t_self = Version::_t_self();
3041
0
    ::hilti::rt::detail::checkStack();
3042
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:46:16-49:1");
3043
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:47:14-47:21");
3044
3045
    // Begin parsing production: Ctor: _anon_5_5 -> /HTTP// (regexp);
3046
0
    if ( ::hilti::rt::Bool{static_cast<bool>(_t_lah)} ) {
3047
0
        if ( _t_lah != ::hilti::rt::integer::safe<std::int64_t>{4} ) {
3048
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:47:14-47:21");
3049
0
            throw ::spicy::rt::ParseError{"unexpected token to consume"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:47:14-47:21"};
3050
0
        }
3051
3052
0
        _t_cur.sub(_t_lahe).data();
3053
0
        _t_lah = ::hilti::rt::integer::safe<std::int64_t>{0};
3054
0
        _t_cur = _t_cur.advance(_t_lahe);
3055
0
        if ( _t_trim ) {
3056
0
            (*_t_data).trim(_t_cur.begin());
3057
0
        }
3058
0
    }
3059
0
    else {
3060
0
        ::hilti::rt::stream::View _t_ncur = _t_cur;
3061
0
        for ( ::hilti::rt::regexp::MatchState ms = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_3.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
3062
0
            ::hilti::rt::integer::safe<int32_t> _t_rc;
3063
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:47:14-47:21");
3064
0
            ::hilti::rt::tuple::assign(std::tie(_t_rc, _t_ncur), ms.advance(_t_ncur));
3065
0
            switch ( auto&& _t_x = _t_rc; (_t_x).Ref() ) {
3066
0
                case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
3067
0
                    ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_50;
3068
                    // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores);
3069
0
                    ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_ncur, (_t_lhs_50=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
3070
0
                    continue;
3071
0
                }
3072
0
                case ::hilti::rt::integer::safe<std::int32_t>{0}: {
3073
0
                      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:47:14-47:21");
3074
0
                    throw ::spicy::rt::ParseError{"failed to match regular expression"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:47:14-47:21"};
3075
0
                }
3076
0
                default: {
3077
0
                    ms.captures(_t_cur);
3078
0
                    _t_cur.sub(_t_ncur.begin()).data();
3079
0
                    _t_cur = _t_ncur;
3080
0
                    if ( _t_trim ) {
3081
0
                        (*_t_data).trim(_t_ncur.begin());
3082
0
                    }
3083
3084
0
                    goto _t_done_65074;
3085
0
                }
3086
0
            }
3087
0
        }
3088
3089
0
        _t_done_65074: {}
3090
3091
0
    }
3092
3093
    // End parsing production: Ctor: _anon_5_5 -> /HTTP// (regexp);
3094
3095
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:48:13-48:28");
3096
3097
    // Begin parsing production: Ctor: number_5 -> /[0-9]+\.[0-9]*/ (regexp);
3098
0
    ::hilti::rt::stream::View _t_ncur = _t_cur;
3099
0
    for ( ::hilti::rt::regexp::MatchState ms = hlt_internal_HTTP_Reply::HTTP::_t_ctor__regexp_4.tokenMatcher(); ::hilti::rt::Bool{true};  ) {
3100
0
        ::hilti::rt::integer::safe<int32_t> _t_rc;
3101
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:48:13-48:28");
3102
0
        ::hilti::rt::tuple::assign(std::tie(_t_rc, _t_ncur), ms.advance(_t_ncur));
3103
0
        switch ( auto&& _t_x = _t_rc; (_t_x).Ref() ) {
3104
0
            case ::hilti::rt::integer::safe<std::int32_t>{-1}: {
3105
0
                ::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters> _t_lhs_51;
3106
                // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores);
3107
0
                ::spicy::rt::detail::waitForInputOrEod(_t_data, _t_ncur, (_t_lhs_51=(::hilti::rt::StrongReference<::spicy::rt::filter::detail::Filters>{})));
3108
0
                continue;
3109
0
            }
3110
0
            case ::hilti::rt::integer::safe<std::int32_t>{0}: {
3111
0
                  ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:48:13-48:28");
3112
0
                throw ::spicy::rt::ParseError{"failed to match regular expression"sv, "/src/spicy/spicy-http/analyzer/analyzer.spicy:48:13-48:28"};
3113
0
            }
3114
0
            default: {
3115
0
                ms.captures(_t_cur);
3116
0
                _t_cur.sub(_t_ncur.begin()).data();
3117
0
                _t_cur = _t_ncur;
3118
0
                if ( _t_trim ) {
3119
0
                    (*_t_data).trim(_t_ncur.begin());
3120
0
                }
3121
3122
0
                goto _t_done_65428;
3123
0
            }
3124
0
        }
3125
0
    }
3126
3127
0
    _t_done_65428: {}
3128
3129
    // End parsing production: Ctor: number_5 -> /[0-9]+\.[0-9]*/ (regexp);
3130
3131
0
    ::hilti::rt::debug::dedent("spicy"sv);
3132
0
    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));
3133
0
}
3134
3135
0
auto hlt_internal_HTTP_Reply::HTTP::Version::_t_parse_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>> {
3136
0
    auto _t_self = Version::_t_self();
3137
0
    ::hilti::rt::detail::checkStack();
3138
0
    ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:46:16-49:1");
3139
0
    ::hilti::rt::debug::indent("spicy"sv);
3140
0
    ::hilti::rt::stream::SafeConstIterator _t_begin_ = _t_cur.begin();
3141
0
    return (*_t_self)._t_parse_HTTP__Version_5_stage2(_t_data, _t_cur, _t_trim, _t_lah, _t_lahe, _t_error);
3142
0
}
3143
3144
0
extern void hlt_internal_HTTP_Reply::HTTP::_t_hook_Body__t_on_0x25_done_14722512847394215849(::hilti::rt::ValueReference<Body>& _t_self) {
3145
0
    ::hilti::rt::detail::checkStack();
3146
0
      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:180:3-180:28");
3147
0
    (*(*_t_self).data).size();
3148
0
}
3149
3150
0
extern void hlt_internal_HTTP_Reply::HTTP::_t_hook_Body__t_on_0x25_error_18155171557293147693(const ::hilti::rt::String& _t_except, ::hilti::rt::ValueReference<Body>& _t_self) {
3151
0
    ::hilti::rt::detail::checkStack();
3152
0
      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:184:3-184:28");
3153
0
    (*(*_t_self).data).size();
3154
0
}
3155
3156
0
extern void hlt_internal_HTTP_Reply::HTTP::_t_hook_Body__t_on_0x25_init_731939298784154376(::hilti::rt::ValueReference<Body>& _t_self) {
3157
0
    ::hilti::rt::detail::checkStack();
3158
0
      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:161:9-162:90");
3159
0
    if ( (::hilti::rt::tuple::get<0>((*_t_self->_t_p_msg.derefAsValue()).content_type) != ""_b) && (::hilti::rt::tuple::get<1>((*_t_self->_t_p_msg.derefAsValue()).content_type) != ""_b) ) {
3160
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:162:13-162:89");
3161
0
        (*(*_t_self).data).connect_mime_type(::hilti::rt::tuple::get<0>((*_t_self->_t_p_msg.derefAsValue()).content_type) + "/"_b + ::hilti::rt::tuple::get<1>((*_t_self->_t_p_msg.derefAsValue()).content_type), hlt_internal_HTTP_Reply_hlto_scope);
3162
0
    }
3163
3164
0
      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:164:9-174:9");
3165
0
    if ( (*_t_self->_t_p_msg.derefAsValue()).content_encoding.hasValue() ) {
3166
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:165:7-168:5");
3167
0
        if ( (*_t_self->_t_p_msg.derefAsValue()).content_encoding.value() == "gzip"_b ) {
3168
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:166:17-166:58");
3169
0
            (*(*_t_self).data).connect_filter(::hilti::rt::reference::make_strong<hlt_internal_HTTP_Reply::filter::Zlib>(::hilti::rt::struct_::tag::Parameters(), ::hilti::rt::Optional<::hilti::rt::integer::safe<int64_t>>{}));
3170
0
        }
3171
3172
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:170:7-173:5");
3173
0
        if ( (*_t_self->_t_p_msg.derefAsValue()).content_encoding.value() == "deflate"_b ) {
3174
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:171:17-171:58");
3175
0
            (*(*_t_self).data).connect_filter(::hilti::rt::reference::make_strong<hlt_internal_HTTP_Reply::filter::Zlib>(::hilti::rt::struct_::tag::Parameters(), ::hilti::rt::Optional<::hilti::rt::integer::safe<int64_t>>{}));
3176
0
        }
3177
0
    }
3178
3179
0
      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:176:9-176:43");
3180
0
    (*(*_t_self).data).connect(::hilti::rt::reference::make_strong<hlt_internal_HTTP_Reply::HTTP::Content>(::hilti::rt::struct_::tag::Parameters(), _t_self->_t_p_msg.derefAsValue()));
3181
0
}
3182
3183
0
extern void hlt_internal_HTTP_Reply::HTTP::_t_hook_Body__t_on__anon_18_foreach_5136231824764224079(const ::hilti::rt::Bytes& _t_dd, ::hilti::rt::ValueReference<Body>& _t_self) {
3184
0
    ::hilti::rt::detail::checkStack();
3185
0
      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:153:46-153:64");
3186
0
    (*(*_t_self).data).write(_t_dd, ::hilti::rt::Optional<::hilti::rt::integer::safe<uint64_t>>{}, ::hilti::rt::Optional<::hilti::rt::integer::safe<uint64_t>>{});
3187
0
}
3188
3189
0
extern void hlt_internal_HTTP_Reply::HTTP::_t_hook_Chunks__t_on_trailer_foreach_11937523771540963620(const ::hilti::rt::ValueReference<hlt_internal_HTTP_Reply::HTTP::Header>& _t_dd, ::hilti::rt::ValueReference<Chunks>& _t_self) {
3190
0
    ::hilti::rt::detail::checkStack();
3191
0
      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:202:27-202:51");
3192
0
    (*_t_self->_t_p_msg.derefAsValue()).headers.value().emplace_back(_t_dd);
3193
0
}
3194
3195
0
extern void hlt_internal_HTTP_Reply::HTTP::_t_hook_Content__t_on_data_6301994640972939018(::hilti::rt::ValueReference<Content>& _t_self) {
3196
0
    ::hilti::rt::detail::checkStack();
3197
0
      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:190:9-193:13");
3198
0
    if ( (*_t_self).data.value().size() > ::hilti::rt::integer::safe<std::uint64_t>{0U} ) {
3199
0
    }
3200
0
}
3201
3202
0
extern void hlt_internal_HTTP_Reply::HTTP::_t_hook_Header__t_on_content_9269554996284748180(::hilti::rt::ValueReference<Header>& _t_self) {
3203
0
    ::hilti::rt::detail::checkStack();
3204
0
      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:121:9-121:39");
3205
0
    ::hilti::rt::Bytes name = (*_t_self).name.value().upper(::hilti::rt::unicode::Charset{::hilti::rt::unicode::Charset::UTF8}, ::hilti::rt::unicode::DecodeErrorStrategy{::hilti::rt::unicode::DecodeErrorStrategy::REPLACE});
3206
0
      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:123:9-126:13");
3207
0
    if ( name == "CONTENT-LENGTH"_b ) {
3208
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:124:13-124:55");
3209
0
        (*_t_self->_t_p_msg.derefAsValue()).content_length.valueOrInit() = (*_t_self).content.value().toUInt();
3210
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:125:13-125:31");
3211
0
        (*_t_self->_t_p_msg.derefAsValue()).has_body = ::hilti::rt::Bool{true};
3212
0
    }
3213
3214
0
      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:128:9-131:13");
3215
0
    if ( name == "TRANSFER-ENCODING"_b ) {
3216
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:129:13-129:48");
3217
0
        (*_t_self->_t_p_msg.derefAsValue()).transfer_encoding.valueOrInit() = (*_t_self).content.value();
3218
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:130:13-130:31");
3219
0
        (*_t_self->_t_p_msg.derefAsValue()).has_body = ::hilti::rt::Bool{true};
3220
0
    }
3221
3222
0
      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:133:9-134:48");
3223
0
    if ( name == "CONTENT-ENCODING"_b ) {
3224
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:134:13-134:47");
3225
0
        (*_t_self->_t_p_msg.derefAsValue()).content_encoding.valueOrInit() = (*_t_self).content.value();
3226
0
    }
3227
3228
0
      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:136:9-141:13");
3229
0
    if ( name == "CONTENT-TYPE"_b ) {
3230
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:137:13-137:69");
3231
0
        ::hilti::rt::Tuple<::hilti::rt::Bytes, ::hilti::rt::Bytes> ct = (*_t_self).content.value().split1(";"_b);
3232
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:138:13-138:62");
3233
0
        ::hilti::rt::Tuple<::hilti::rt::Bytes, ::hilti::rt::Bytes> ty = ::hilti::rt::tuple::get<0>(ct).split1("/"_b);
3234
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:139:13-139:77");
3235
0
        (*_t_self->_t_p_msg.derefAsValue()).content_type = ::hilti::rt::tuple::make_from_optionals(::hilti::rt::tuple::wrap_expression([&]() { return ::hilti::rt::tuple::get<0>(ty).strip().upper(::hilti::rt::unicode::Charset{::hilti::rt::unicode::Charset::UTF8}, ::hilti::rt::unicode::DecodeErrorStrategy{::hilti::rt::unicode::DecodeErrorStrategy::REPLACE}); }), ::hilti::rt::tuple::wrap_expression([&]() { return ::hilti::rt::tuple::get<1>(ty).strip().upper(::hilti::rt::unicode::Charset{::hilti::rt::unicode::Charset::UTF8}, ::hilti::rt::unicode::DecodeErrorStrategy{::hilti::rt::unicode::DecodeErrorStrategy::REPLACE}); }));
3236
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:140:13-140:54");
3237
0
        (*_t_self->_t_p_msg.derefAsValue()).content_type_parameter.valueOrInit() = ::hilti::rt::tuple::get<1>(ct).strip();
3238
0
    }
3239
0
}
3240
3241
0
extern void hlt_internal_HTTP_Reply::HTTP::_t_hook_Message__t_on_0x25_init_5738243580247591922(::hilti::rt::ValueReference<Message>& _t_self) {
3242
0
    ::hilti::rt::detail::checkStack();
3243
0
      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:88:9-88:36");
3244
0
    (*_t_self).has_body = _t_self->_t_p_body_default;
3245
0
}
3246
3247
0
extern void hlt_internal_HTTP_Reply::HTTP::_t_hook_Message__t_on_end_of_hdr_14883065431382725603(::hilti::rt::ValueReference<Message>& _t_self) {
3248
0
    ::hilti::rt::detail::checkStack();
3249
0
      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:93:9-94:54");
3250
0
    if ( (*_t_self).content_length.hasValue() ) {
3251
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:94:13-94:53");
3252
0
        (*_t_self).delivery_mode = HTTP::DeliveryMode{HTTP::DeliveryMode::Length};
3253
0
    }
3254
3255
0
      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:96:9-104:9");
3256
0
    if ( ::hilti::rt::tuple::get<0>((*_t_self).content_type) == "MULTIPART"_b ) {
3257
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:97:13-97:88");
3258
0
        ::hilti::rt::Result<::hilti::rt::Bytes> boundary = (*_t_self).content_type_parameter.value().match(::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"boundary=\"([^\"]*)\"", false, 0}}, {}}, ::hilti::rt::integer::safe<std::uint64_t>{1U});
3259
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:99:13-100:85");
3260
0
        if ( ! (::hilti::rt::Bool{static_cast<bool>(boundary)}) ) {
3261
0
              ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:100:17-100:84");
3262
0
            boundary = (*_t_self).content_type_parameter.value().match(::hilti::rt::RegExp{{::hilti::rt::regexp::Pattern{"boundary=([^ ;]*)", false, 0}}, {}}, ::hilti::rt::integer::safe<std::uint64_t>{1U});
3263
0
        }
3264
3265
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:102:13-102:56");
3266
0
        (*_t_self).delivery_mode = HTTP::DeliveryMode{HTTP::DeliveryMode::Multipart};
3267
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:103:13-103:67");
3268
0
        (*_t_self).multipart_boundary.valueOrInit() = "--"_b + boundary.valueOrThrow() + "--\015\012"_b;
3269
0
    }
3270
3271
0
      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:106:9-107:55");
3272
0
    if ( ((*_t_self).transfer_encoding.hasValue()) && ((*_t_self).transfer_encoding.value() == "chunked"_b) ) {
3273
0
          ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:107:13-107:54");
3274
0
        (*_t_self).delivery_mode = HTTP::DeliveryMode{HTTP::DeliveryMode::Chunked};
3275
0
    }
3276
0
}
3277
3278
0
extern void hlt_internal_HTTP_Reply::HTTP::_t_init_module() {
3279
0
    hlt_internal_HTTP_Reply::HTTP::_t_register_HTTP_Body();
3280
0
    hlt_internal_HTTP_Reply::HTTP::_t_register_HTTP_Chunk();
3281
0
    hlt_internal_HTTP_Reply::HTTP::_t_register_HTTP_Chunks();
3282
0
    hlt_internal_HTTP_Reply::HTTP::_t_register_HTTP_Content();
3283
0
    hlt_internal_HTTP_Reply::HTTP::_t_register_HTTP_Header();
3284
0
    hlt_internal_HTTP_Reply::HTTP::_t_register_HTTP_Message();
3285
0
    hlt_internal_HTTP_Reply::HTTP::_t_register_HTTP_Replies();
3286
0
    hlt_internal_HTTP_Reply::HTTP::_t_register_HTTP_Reply();
3287
0
    hlt_internal_HTTP_Reply::HTTP::_t_register_HTTP_ReplyLine();
3288
0
    hlt_internal_HTTP_Reply::HTTP::_t_register_HTTP_Request();
3289
0
    hlt_internal_HTTP_Reply::HTTP::_t_register_HTTP_RequestLine();
3290
0
    hlt_internal_HTTP_Reply::HTTP::_t_register_HTTP_Requests();
3291
0
    hlt_internal_HTTP_Reply::HTTP::_t_register_HTTP_Version();
3292
0
}
3293
3294
0
extern void hlt_internal_HTTP_Reply::HTTP::_t_register_HTTP_Body() {
3295
0
    ::hilti::rt::detail::checkStack();
3296
0
    HTTP::Body::_t_parser = ::spicy::rt::Parser{::hilti::rt::struct_::tag::Inits(), "HTTP::Body"sv, ::hilti::rt::Bool{false}, ::hilti::rt::Null{}, hlt_HTTP_Reply::HTTP::Body::parse2, ::hilti::rt::Null{}, ::hilti::rt::Null{}, &type_info::_t_ti_HTTP__Body_namex2aHTTP__Bodyx2b, ""_hs, ::hilti::rt::Vector<::spicy::rt::MIMEType>({}), ::hilti::rt::Vector<::spicy::rt::ParserPort>({})};
3297
0
    ::spicy::rt::detail::registerParser(HTTP::Body::_t_parser, hlt_internal_HTTP_Reply_hlto_scope, ::hilti::rt::StrongReference<hlt_internal_HTTP_Reply::HTTP::Body>{}, &type_info::_t_ti_strong_ref_const_HTTP__Body__strong_refx2anamex2aHTTP__Bodyx2bx2b);
3298
0
}
3299
3300
0
extern void hlt_internal_HTTP_Reply::HTTP::_t_register_HTTP_Chunk() { ::hilti::rt::detail::checkStack(); }
3301
3302
0
extern void hlt_internal_HTTP_Reply::HTTP::_t_register_HTTP_Chunks() { ::hilti::rt::detail::checkStack(); }
3303
3304
0
extern void hlt_internal_HTTP_Reply::HTTP::_t_register_HTTP_Content() {
3305
0
    ::hilti::rt::detail::checkStack();
3306
0
    HTTP::Content::_t_parser = ::spicy::rt::Parser{::hilti::rt::struct_::tag::Inits(), "HTTP::Content"sv, ::hilti::rt::Bool{false}, ::hilti::rt::Null{}, hlt_HTTP_Reply::HTTP::Content::parse2, ::hilti::rt::Null{}, ::hilti::rt::Null{}, &type_info::_t_ti_HTTP__Content_namex2aHTTP__Contentx2b, ""_hs, ::hilti::rt::Vector<::spicy::rt::MIMEType>({}), ::hilti::rt::Vector<::spicy::rt::ParserPort>({})};
3307
0
    ::spicy::rt::detail::registerParser(HTTP::Content::_t_parser, hlt_internal_HTTP_Reply_hlto_scope, ::hilti::rt::StrongReference<hlt_internal_HTTP_Reply::HTTP::Content>{}, &type_info::_t_ti_strong_ref_const_HTTP__Content__strong_refx2anamex2aHTTP__Contentx2bx2b);
3308
0
}
3309
3310
0
extern void hlt_internal_HTTP_Reply::HTTP::_t_register_HTTP_Header() { ::hilti::rt::detail::checkStack(); }
3311
3312
0
extern void hlt_internal_HTTP_Reply::HTTP::_t_register_HTTP_Message() { ::hilti::rt::detail::checkStack(); }
3313
3314
0
extern void hlt_internal_HTTP_Reply::HTTP::_t_register_HTTP_Replies() {
3315
0
    ::hilti::rt::detail::checkStack();
3316
0
    HTTP::Replies::_t_parser = ::spicy::rt::Parser{::hilti::rt::struct_::tag::Inits(), "HTTP::Replies"sv, ::hilti::rt::Bool{true}, hlt_HTTP_Reply::HTTP::Replies::parse1, hlt_HTTP_Reply::HTTP::Replies::parse2, hlt_HTTP_Reply::HTTP::Replies::parse3, ::hilti::rt::Null{}, &type_info::_t_ti_HTTP__Replies_namex2aHTTP__Repliesx2b, ""_hs, ::hilti::rt::Vector<::spicy::rt::MIMEType>({}), ::hilti::rt::Vector<::spicy::rt::ParserPort>({::spicy::rt::ParserPort{::hilti::rt::tuple::make_from_optionals(::hilti::rt::optional::make(::hilti::rt::Port{"80/tcp"}), ::hilti::rt::optional::make(::spicy::rt::Direction{::spicy::rt::Direction::Responder}))}})};
3317
0
    ::spicy::rt::detail::registerParser(HTTP::Replies::_t_parser, hlt_internal_HTTP_Reply_hlto_scope, ::hilti::rt::StrongReference<hlt_internal_HTTP_Reply::HTTP::Replies>{}, &type_info::_t_ti_strong_ref_const_HTTP__Replies__strong_refx2anamex2aHTTP__Repliesx2bx2b);
3318
0
}
3319
3320
0
extern void hlt_internal_HTTP_Reply::HTTP::_t_register_HTTP_Reply() { ::hilti::rt::detail::checkStack(); }
3321
3322
0
extern void hlt_internal_HTTP_Reply::HTTP::_t_register_HTTP_ReplyLine() { ::hilti::rt::detail::checkStack(); }
3323
3324
0
extern void hlt_internal_HTTP_Reply::HTTP::_t_register_HTTP_Request() { ::hilti::rt::detail::checkStack(); }
3325
3326
0
extern void hlt_internal_HTTP_Reply::HTTP::_t_register_HTTP_RequestLine() { ::hilti::rt::detail::checkStack(); }
3327
3328
0
extern void hlt_internal_HTTP_Reply::HTTP::_t_register_HTTP_Requests() {
3329
0
    ::hilti::rt::detail::checkStack();
3330
0
    HTTP::Requests::_t_parser = ::spicy::rt::Parser{::hilti::rt::struct_::tag::Inits(), "HTTP::Requests"sv, ::hilti::rt::Bool{true}, hlt_HTTP_Reply::HTTP::Requests::parse1, hlt_HTTP_Reply::HTTP::Requests::parse2, hlt_HTTP_Reply::HTTP::Requests::parse3, ::hilti::rt::Null{}, &type_info::_t_ti_HTTP__Requests_namex2aHTTP__Requestsx2b, ""_hs, ::hilti::rt::Vector<::spicy::rt::MIMEType>({}), ::hilti::rt::Vector<::spicy::rt::ParserPort>({::spicy::rt::ParserPort{::hilti::rt::tuple::make_from_optionals(::hilti::rt::optional::make(::hilti::rt::Port{"80/tcp"}), ::hilti::rt::optional::make(::spicy::rt::Direction{::spicy::rt::Direction::Originator}))}})};
3331
0
    ::spicy::rt::detail::registerParser(HTTP::Requests::_t_parser, hlt_internal_HTTP_Reply_hlto_scope, ::hilti::rt::StrongReference<hlt_internal_HTTP_Reply::HTTP::Requests>{}, &type_info::_t_ti_strong_ref_const_HTTP__Requests__strong_refx2anamex2aHTTP__Requestsx2bx2b);
3332
0
}
3333
3334
0
extern void hlt_internal_HTTP_Reply::HTTP::_t_register_HTTP_Version() { ::hilti::rt::detail::checkStack(); }
3335
3336
1
extern void hlt_internal_HTTP_Reply::HTTP::_t_register_module() {
3337
1
    ::hilti::rt::Library::setScope(&hlt_internal_HTTP_Reply_hlto_scope);
3338
1
    ::hilti::rt::detail::registerModule({ "HTTP", hlt_internal_HTTP_Reply_hlto_scope, &_t_init_module, nullptr, nullptr, nullptr});
3339
1
}
3340
3341
0
inline auto hlt_internal_HTTP_Reply::HTTP::operator<<(std::ostream& o, DeliveryMode x) -> std::ostream& { o << ::hilti::rt::to_string(x); return o; }
3342
3343
0
extern auto hlt_internal_HTTP_Reply::HTTP::operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::HTTP::Message& x) -> std::ostream& { return o << ::hilti::rt::to_string(x);; }
3344
3345
0
extern auto hlt_internal_HTTP_Reply::HTTP::operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::HTTP::Header& x) -> std::ostream& { return o << ::hilti::rt::to_string(x);; }
3346
3347
0
extern auto hlt_internal_HTTP_Reply::HTTP::operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::HTTP::Body& x) -> std::ostream& { return o << ::hilti::rt::to_string(x);; }
3348
3349
0
extern auto hlt_internal_HTTP_Reply::HTTP::operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::HTTP::Chunks& x) -> std::ostream& { return o << ::hilti::rt::to_string(x);; }
3350
3351
0
extern auto hlt_internal_HTTP_Reply::HTTP::operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::HTTP::Chunk& x) -> std::ostream& { return o << ::hilti::rt::to_string(x);; }
3352
3353
0
extern auto hlt_internal_HTTP_Reply::HTTP::operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::HTTP::Content& x) -> std::ostream& { return o << ::hilti::rt::to_string(x);; }
3354
3355
0
extern auto hlt_internal_HTTP_Reply::HTTP::operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::HTTP::Version& x) -> std::ostream& { return o << ::hilti::rt::to_string(x);; }
3356
3357
0
extern auto hlt_internal_HTTP_Reply::HTTP::operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::HTTP::ReplyLine& x) -> std::ostream& { return o << ::hilti::rt::to_string(x);; }
3358
3359
0
extern auto hlt_internal_HTTP_Reply::HTTP::operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::HTTP::Reply& x) -> std::ostream& { return o << ::hilti::rt::to_string(x);; }
3360
3361
0
extern auto hlt_internal_HTTP_Reply::HTTP::operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::HTTP::Replies& x) -> std::ostream& { return o << ::hilti::rt::to_string(x);; }
3362
3363
0
extern auto hlt_internal_HTTP_Reply::HTTP::operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::HTTP::RequestLine& x) -> std::ostream& { return o << ::hilti::rt::to_string(x);; }
3364
3365
0
extern auto hlt_internal_HTTP_Reply::HTTP::operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::HTTP::Request& x) -> std::ostream& { return o << ::hilti::rt::to_string(x);; }
3366
3367
0
extern auto hlt_internal_HTTP_Reply::HTTP::operator<<(std::ostream& o, const hlt_internal_HTTP_Reply::HTTP::Requests& x) -> std::ostream& { return o << ::hilti::rt::to_string(x);; }
3368
3369
0
static auto hlt_internal_HTTP_Reply::HTTP::reply_code_needs_body(const ::hilti::rt::integer::safe<uint64_t>& status) -> ::hilti::rt::Bool {
3370
0
    ::hilti::rt::detail::checkStack();
3371
0
      ::hilti::rt::location("/src/spicy/spicy-http/analyzer/analyzer.spicy:21:4-21:76");
3372
0
    return (status <= ::hilti::rt::integer::safe<std::uint64_t>{99U}) || ((((status >= ::hilti::rt::integer::safe<std::uint64_t>{200U}) && (status != ::hilti::rt::integer::safe<std::uint64_t>{204U})) && (status != ::hilti::rt::integer::safe<std::uint64_t>{304U})));
3373
0
}
3374
3375
inline void hlt_internal_HTTP_Reply::filter::Zlib::_t_on_0x25_done() {
3376
    auto _t_self = filter::Zlib::_t_self();
3377
    return hlt_internal_HTTP_Reply::filter::_t_hook_Zlib__t_on_0x25_done(_t_self);
3378
}
3379
3380
inline void hlt_internal_HTTP_Reply::filter::Zlib::_t_on_0x25_init() {
3381
    auto _t_self = filter::Zlib::_t_self();
3382
    return hlt_internal_HTTP_Reply::filter::_t_hook_Zlib__t_on_0x25_init(_t_self);
3383
}
3384
3385
inline void hlt_internal_HTTP_Reply::filter::Zlib::_t_on__anon_28(const ::hilti::rt::Bytes& _t_dd) {
3386
    auto _t_self = filter::Zlib::_t_self();
3387
    return hlt_internal_HTTP_Reply::filter::_t_hook_Zlib__t_on__anon_28(_t_dd, _t_self);
3388
}
3389