Coverage Report

Created: 2025-12-31 06:15

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