GCC Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 92.1% 1087 / 0 / 1180
Functions: 98.2% 275 / 0 / 280
Branches: 75.0% 159 / 0 / 212

libs/url/include/boost/url/grammar/impl/tuple_rule.hpp
Line Branch Exec Source
1 //
2 // Copyright (c) 2022 Vinnie Falco (vinnie dot falco at gmail dot com)
3 //
4 // Distributed under the Boost Software License, Version 1.0. (See accompanying
5 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 //
7 // Official repository: https://github.com/boostorg/url
8 //
9
10 #ifndef BOOST_URL_GRAMMAR_IMPL_TUPLE_RULE_HPP
11 #define BOOST_URL_GRAMMAR_IMPL_TUPLE_RULE_HPP
12
13 #include <boost/url/grammar/parse.hpp>
14 #include <boost/mp11/integral.hpp>
15 #include <boost/mp11/list.hpp>
16 #include <boost/mp11/tuple.hpp>
17 #include <type_traits>
18
19 namespace boost {
20 namespace urls {
21 namespace grammar {
22
23 namespace detail {
24
25 // returns a tuple
26 template<
27 bool IsList,
28 class R0, class... Rn>
29 struct parse_sequence
30 {
31 using R = detail::tuple<R0, Rn...>;
32
33 using L = mp11::mp_list<
34 typename R0::value_type,
35 typename Rn::value_type...>;
36
37 using V = mp11::mp_remove<
38 std::tuple<
39 system::result<typename R0::value_type>,
40 system::result<typename Rn::value_type>...>,
41 system::result<void>>;
42
43 template<std::size_t I>
44 using is_void = std::is_same<
45 mp11::mp_at_c<L, I>, void>;
46
47 system::error_code ec;
48 R const& rn;
49 V vn;
50
51 explicit
52 3647 parse_sequence(
53 R const& rn_) noexcept
54 3647 : rn(rn_)
55 3647 , vn(mp11::mp_fill<
56 3647 V, system::error_code>{})
57 {
58 3647 }
59
60 void
61 1181 apply(
62 char const*&,
63 char const*,
64 ...) const noexcept
65 {
66 1181 }
67
68 // for system::result<void>
69 template<
70 std::size_t Ir,
71 std::size_t Iv>
72 void
73 1488 apply(
74 char const*& it,
75 char const* end,
76 mp11::mp_size_t<Ir> const&,
77 mp11::mp_size_t<Iv> const&,
78 mp11::mp_true const&)
79 {
80 system::result<void> rv =
81
8/8
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t>::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 175 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t>::apply<3ul, 2ul>(char const*&, char const*, std::integral_constant<unsigned long, 3ul> const&, std::integral_constant<unsigned long, 2ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 152 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t>::apply<5ul, 3ul>(char const*&, char const*, std::integral_constant<unsigned long, 5ul> const&, std::integral_constant<unsigned long, 3ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 135 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t>::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 1 time.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t>::apply<2ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 2ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 1 time.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::variant_rule_t<boost::urls::detail::identifier_rule_t, boost::urls::grammar::unsigned_rule<unsigned long> > >, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::tuple_rule_t<boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::format_spec_rule_t> >, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 673 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::variant_rule_t<boost::urls::detail::identifier_rule_t, boost::urls::grammar::unsigned_rule<unsigned long> > >, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::tuple_rule_t<boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::format_spec_rule_t> >, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<3ul, 2ul>(char const*&, char const*, std::integral_constant<unsigned long, 3ul> const&, std::integral_constant<unsigned long, 2ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 350 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::implementation_defined::pct_encoded_rule_t<boost::urls::grammar::lut_chars>, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::implementation_defined::digit_chars_t> >::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 1 time.
1488 grammar::parse(
82 1488 it, end, get<Ir>(rn));
83
13/16
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t>::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 15 times.
✓ Branch 2 taken 160 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t>::apply<3ul, 2ul>(char const*&, char const*, std::integral_constant<unsigned long, 3ul> const&, std::integral_constant<unsigned long, 2ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 5 times.
✓ Branch 2 taken 147 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t>::apply<5ul, 3ul>(char const*&, char const*, std::integral_constant<unsigned long, 5ul> const&, std::integral_constant<unsigned long, 3ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 4 times.
✓ Branch 2 taken 131 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t>::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, true> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t>::apply<2ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 2ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, true> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::variant_rule_t<boost::urls::detail::identifier_rule_t, boost::urls::grammar::unsigned_rule<unsigned long> > >, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::tuple_rule_t<boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::format_spec_rule_t> >, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 323 times.
✓ Branch 2 taken 350 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::variant_rule_t<boost::urls::detail::identifier_rule_t, boost::urls::grammar::unsigned_rule<unsigned long> > >, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::tuple_rule_t<boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::format_spec_rule_t> >, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<3ul, 2ul>(char const*&, char const*, std::integral_constant<unsigned long, 3ul> const&, std::integral_constant<unsigned long, 2ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 5 times.
✓ Branch 2 taken 345 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::implementation_defined::pct_encoded_rule_t<boost::urls::grammar::lut_chars>, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::implementation_defined::digit_chars_t> >::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, true> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
1488 if( !rv )
84 {
85 352 ec = rv.error();
86 352 return;
87 }
88 1136 apply(it, end,
89 mp11::mp_size_t<Ir+1>{},
90 mp11::mp_size_t<Iv>{});
91 }
92
93 template<
94 std::size_t Ir,
95 std::size_t Iv>
96 void
97 4868 apply(
98 char const*& it,
99 char const* end,
100 mp11::mp_size_t<Ir> const&,
101 mp11::mp_size_t<Iv> const&,
102 mp11::mp_false const&)
103 {
104 4868 auto& rv = get<Iv>(vn);
105
5/5
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::cs_delim_rule<boost::urls::grammar::lut_chars>, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::lut_chars> > >::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, false> const&):
✓ Branch 1 taken 371 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::variant_rule_t<boost::urls::detail::identifier_rule_t, boost::urls::grammar::unsigned_rule<unsigned long> > >, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::cs_delim_rule<boost::urls::grammar::lut_chars> > >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✓ Branch 1 taken 314 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::variant_rule_t<boost::urls::detail::identifier_rule_t, boost::urls::grammar::unsigned_rule<unsigned long> > >, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::cs_delim_rule<boost::urls::grammar::lut_chars> > >::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, false> const&):
✓ Branch 1 taken 314 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::variant_rule_t<boost::urls::detail::identifier_rule_t, boost::urls::grammar::unsigned_rule<unsigned long> > >, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::tuple_rule_t<boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::format_spec_rule_t> >, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<1ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✓ Branch 1 taken 350 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::variant_rule_t<boost::urls::detail::identifier_rule_t, boost::urls::grammar::unsigned_rule<unsigned long> > >, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::tuple_rule_t<boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::format_spec_rule_t> >, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<2ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 2ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, false> const&):
✓ Branch 1 taken 350 times.
4868 rv = grammar::parse(
106 4868 it, end, get<Ir>(rn));
107
38/62
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::ch_delim_rule>::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::ch_delim_rule>::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::dec_octet_rule_t>::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::dec_octet_rule_t>::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::dec_octet_rule_t>::apply<2ul, 2ul>(char const*&, char const*, std::integral_constant<unsigned long, 2ul> const&, std::integral_constant<unsigned long, 2ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::dec_octet_rule_t>::apply<3ul, 3ul>(char const*&, char const*, std::integral_constant<unsigned long, 3ul> const&, std::integral_constant<unsigned long, 3ul> const&, std::integral_constant<bool, false> const&):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::implementation_defined::hexdig_chars_t>, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::lut_chars> >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✓ Branch 1 taken 7 times.
✓ Branch 2 taken 15 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::implementation_defined::hexdig_chars_t>, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::lut_chars> >::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 15 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::implementation_defined::hexdig_chars_t>, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::lut_chars> >::apply<2ul, 2ul>(char const*&, char const*, std::integral_constant<unsigned long, 2ul> const&, std::integral_constant<unsigned long, 2ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 15 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::implementation_defined::hexdig_chars_t>, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::lut_chars> >::apply<3ul, 3ul>(char const*&, char const*, std::integral_constant<unsigned long, 3ul> const&, std::integral_constant<unsigned long, 3ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 15 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::implementation_defined::pct_encoded_rule_t<boost::urls::grammar::lut_chars> >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✓ Branch 1 taken 17 times.
✓ Branch 2 taken 17 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::implementation_defined::pct_encoded_rule_t<boost::urls::grammar::lut_chars> >::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 17 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::cs_delim_rule<boost::urls::grammar::lut_chars>, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::lut_chars> > >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✓ Branch 1 taken 349 times.
✓ Branch 2 taken 371 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::cs_delim_rule<boost::urls::grammar::lut_chars>, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::lut_chars> > >::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 371 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t>::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✓ Branch 1 taken 1703 times.
✓ Branch 2 taken 175 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t>::apply<2ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 2ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, false> const&):
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 152 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t>::apply<4ul, 2ul>(char const*&, char const*, std::integral_constant<unsigned long, 4ul> const&, std::integral_constant<unsigned long, 2ul> const&, std::integral_constant<bool, false> const&):
✓ Branch 1 taken 12 times.
✓ Branch 2 taken 135 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t>::apply<6ul, 3ul>(char const*&, char const*, std::integral_constant<unsigned long, 6ul> const&, std::integral_constant<unsigned long, 3ul> const&, std::integral_constant<bool, false> const&):
✓ Branch 1 taken 16 times.
✓ Branch 2 taken 115 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::variant_rule_t<boost::urls::detail::identifier_rule_t, boost::urls::grammar::unsigned_rule<unsigned long> > >, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::cs_delim_rule<boost::urls::grammar::lut_chars> > >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 314 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::variant_rule_t<boost::urls::detail::identifier_rule_t, boost::urls::grammar::unsigned_rule<unsigned long> > >, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::cs_delim_rule<boost::urls::grammar::lut_chars> > >::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 314 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t>::apply<1ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t>::apply<3ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 3ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, false> const&):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::variant_rule_t<boost::urls::detail::identifier_rule_t, boost::urls::grammar::unsigned_rule<unsigned long> > >, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::tuple_rule_t<boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::format_spec_rule_t> >, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<1ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 350 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::variant_rule_t<boost::urls::detail::identifier_rule_t, boost::urls::grammar::unsigned_rule<unsigned long> > >, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::tuple_rule_t<boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::format_spec_rule_t> >, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<2ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 2ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 350 times.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::implementation_defined::ipv4_address_rule_t, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::tuple_rule_t<boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::unsigned_rule<unsigned short> > > >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::implementation_defined::ipv4_address_rule_t, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::tuple_rule_t<boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::unsigned_rule<unsigned short> > > >::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::implementation_defined::pct_encoded_rule_t<boost::urls::grammar::lut_chars>, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::implementation_defined::digit_chars_t> >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::implementation_defined::pct_encoded_rule_t<boost::urls::grammar::lut_chars>, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::implementation_defined::digit_chars_t> >::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::implementation_defined::pct_encoded_rule_t<boost::urls::grammar::lut_chars>, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::implementation_defined::digit_chars_t> >::apply<2ul, 2ul>(char const*&, char const*, std::integral_constant<unsigned long, 2ul> const&, std::integral_constant<unsigned long, 2ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::implementation_defined::pct_encoded_rule_t<boost::urls::grammar::lut_chars>, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::implementation_defined::digit_chars_t> >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
void boost::urls::grammar::detail::parse_sequence<true, boost::urls::implementation_defined::pct_encoded_rule_t<boost::urls::grammar::lut_chars>, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::implementation_defined::digit_chars_t> >::apply<2ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 2ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
4868 if( !rv )
108 {
109 2114 ec = rv.error();
110 2114 return;
111 }
112 2754 apply(it, end,
113 mp11::mp_size_t<Ir+1>{},
114 mp11::mp_size_t<Iv+1>{});
115 }
116
117 template<
118 std::size_t Ir = 0,
119 std::size_t Iv = 0>
120 typename std::enable_if<
121 Ir < 1 + sizeof...(Rn)>::type
122 6356 apply(
123 char const*& it,
124 char const* end,
125 mp11::mp_size_t<Ir> const& ir = {},
126 mp11::mp_size_t<Iv> const& iv = {}
127 ) noexcept
128 {
129 6356 apply(it, end, ir, iv, is_void<Ir>{});
130 6356 }
131
132 struct deref
133 {
134 template<class R>
135 auto
136 2623 operator()(R const& r) const ->
137 decltype(*r)
138 {
139 2623 return *r;
140 }
141 };
142
143 auto
144 3647 make_result() noexcept ->
145 system::result<typename implementation_defined::tuple_rule_t<
146 R0, Rn...>::value_type>
147 {
148
17/24
boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::ch_delim_rule>::make_result():
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::dec_octet_rule_t>::make_result():
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::implementation_defined::hexdig_chars_t>, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::lut_chars> >::make_result():
✓ Branch 1 taken 7 times.
✓ Branch 2 taken 15 times.
boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::implementation_defined::pct_encoded_rule_t<boost::urls::grammar::lut_chars> >::make_result():
✓ Branch 1 taken 17 times.
✓ Branch 2 taken 17 times.
boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::cs_delim_rule<boost::urls::grammar::lut_chars>, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::lut_chars> > >::make_result():
✓ Branch 1 taken 349 times.
✓ Branch 2 taken 371 times.
boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t>::make_result():
✓ Branch 1 taken 1763 times.
✓ Branch 2 taken 115 times.
boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::variant_rule_t<boost::urls::detail::identifier_rule_t, boost::urls::grammar::unsigned_rule<unsigned long> > >, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::cs_delim_rule<boost::urls::grammar::lut_chars> > >::make_result():
✗ Branch 1 not taken.
✓ Branch 2 taken 314 times.
boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::dec_octet_rule_t>::make_result():
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
boost::urls::grammar::detail::parse_sequence<true, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::variant_rule_t<boost::urls::detail::identifier_rule_t, boost::urls::grammar::unsigned_rule<unsigned long> > >, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::tuple_rule_t<boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::format_spec_rule_t> >, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::make_result():
✓ Branch 1 taken 328 times.
✓ Branch 2 taken 345 times.
boost::urls::grammar::detail::parse_sequence<true, boost::urls::implementation_defined::ipv4_address_rule_t, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::tuple_rule_t<boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::unsigned_rule<unsigned short> > > >::make_result():
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
boost::urls::grammar::detail::parse_sequence<true, boost::urls::implementation_defined::pct_encoded_rule_t<boost::urls::grammar::lut_chars>, boost::urls::grammar::implementation_defined::ch_delim_rule, boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::implementation_defined::digit_chars_t> >::make_result():
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
boost::urls::grammar::detail::parse_sequence<true, boost::urls::implementation_defined::pct_encoded_rule_t<boost::urls::grammar::lut_chars>, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::implementation_defined::digit_chars_t> >::make_result():
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
3647 if(ec.failed())
149 2466 return ec;
150 return mp11::tuple_transform(
151 1181 deref{}, vn);
152 }
153 };
154
155 // returns a value_type
156 template<class R0, class... Rn>
157 struct parse_sequence<false, R0, Rn...>
158 {
159 using R = detail::tuple<R0, Rn...>;
160
161 using L = mp11::mp_list<
162 typename R0::value_type,
163 typename Rn::value_type...>;
164
165 using V = mp11::mp_first<
166 mp11::mp_remove<
167 mp11::mp_list<
168 system::result<typename R0::value_type>,
169 system::result<typename Rn::value_type>...>,
170 system::result<void>>>;
171
172 template<std::size_t I>
173 using is_void = std::is_same<
174 mp11::mp_at_c<L, I>, void>;
175
176 R const& rn;
177 V v;
178
179 explicit
180 7641 parse_sequence(
181 R const& rn_) noexcept
182 7641 : rn(rn_)
183 7641 , v(system::error_code{})
184 {
185 7641 }
186
187 void
188 3581 apply(
189 char const*&,
190 char const*,
191 ...) const noexcept
192 {
193 3581 }
194
195 // for system::result<void>
196 template<
197 std::size_t Ir,
198 std::size_t Iv>
199 BOOST_URL_NO_INLINE
200 void
201 6656 apply(
202 char const*& it,
203 char const* end,
204 mp11::mp_size_t<Ir> const&,
205 mp11::mp_size_t<Iv> const&,
206 mp11::mp_true const&)
207 {
208 system::result<void> rv =
209
19/19
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::detail::ipv6_addrz_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 5 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::detail::ipvfuture_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 5 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::detail::scheme_rule, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 2505 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::detail::scheme_template_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 124 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::detail::userinfo_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 1842 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::detail::userinfo_template_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 48 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::format_spec_rule_t>::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 350 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::pct_encoded_fmt_string_rule_t<boost::urls::grammar::lut_chars> >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 218 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::pct_encoded_fmt_string_rule_t<boost::urls::grammar::lut_chars>, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 2 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::pct_encoded_fmt_string_rule_t<boost::urls::grammar::lut_chars>, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<2ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 2ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 2 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::segment_template_rule_t>::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 654 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::detail::fmt_token_rule_t<boost::urls::grammar::implementation_defined::digit_chars_t> > >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 49 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::variant_rule_t<boost::urls::detail::identifier_rule_t, boost::urls::grammar::unsigned_rule<unsigned long> > >, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 544 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::variant_rule_t<boost::urls::detail::identifier_rule_t, boost::urls::grammar::unsigned_rule<unsigned long> > >, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<2ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 2ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 56 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::implementation_defined::alnum_chars_t> >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 14 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::implementation_defined::alpha_chars_t> >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 81 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::unsigned_rule<unsigned short> >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 3 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >, boost::urls::grammar::implementation_defined::range_rule_t<boost::urls::detail::segment_template_rule_t, boost::urls::grammar::implementation_defined::tuple_rule_t<boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::segment_template_rule_t> > >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 113 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::implementation_defined::ipv6_address_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 41 times.
6656 grammar::parse(
210 6656 it, end, get<Ir>(rn));
211
32/38
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::detail::ipv6_addrz_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, true> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 5 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::detail::ipvfuture_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, true> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 5 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::detail::scheme_rule, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 201 times.
✓ Branch 2 taken 2304 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::detail::scheme_template_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 65 times.
✓ Branch 2 taken 59 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::detail::userinfo_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 1461 times.
✓ Branch 2 taken 381 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::detail::userinfo_template_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 39 times.
✓ Branch 2 taken 9 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::format_spec_rule_t>::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 264 times.
✓ Branch 2 taken 86 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::pct_encoded_fmt_string_rule_t<boost::urls::grammar::lut_chars> >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 198 times.
✓ Branch 2 taken 20 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::pct_encoded_fmt_string_rule_t<boost::urls::grammar::lut_chars>, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, true> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::pct_encoded_fmt_string_rule_t<boost::urls::grammar::lut_chars>, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<2ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 2ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 1 time.
✓ Branch 2 taken 1 time.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::segment_template_rule_t>::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 225 times.
✓ Branch 2 taken 429 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::detail::fmt_token_rule_t<boost::urls::grammar::implementation_defined::digit_chars_t> > >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 35 times.
✓ Branch 2 taken 14 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::variant_rule_t<boost::urls::detail::identifier_rule_t, boost::urls::grammar::unsigned_rule<unsigned long> > >, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 488 times.
✓ Branch 2 taken 56 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::variant_rule_t<boost::urls::detail::identifier_rule_t, boost::urls::grammar::unsigned_rule<unsigned long> > >, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<2ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 2ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, true> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 56 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::implementation_defined::alnum_chars_t> >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 4 times.
✓ Branch 2 taken 10 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::implementation_defined::alpha_chars_t> >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 25 times.
✓ Branch 2 taken 56 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::unsigned_rule<unsigned short> >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, true> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 3 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >, boost::urls::grammar::implementation_defined::range_rule_t<boost::urls::detail::segment_template_rule_t, boost::urls::grammar::implementation_defined::tuple_rule_t<boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::segment_template_rule_t> > >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, true> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 113 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::implementation_defined::ipv6_address_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<1ul, 1ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<bool, true> const&):
✓ Branch 1 taken 12 times.
✓ Branch 2 taken 29 times.
6656 if( !rv )
212 {
213 3018 v = rv.error();
214 3018 return;
215 }
216 3638 apply(it, end,
217 mp11::mp_size_t<Ir+1>{},
218 mp11::mp_size_t<Iv>{});
219 }
220
221 template<
222 std::size_t Ir,
223 std::size_t Iv>
224 void
225 6402 apply(
226 char const*& it,
227 char const* end,
228 mp11::mp_size_t<Ir> const&,
229 mp11::mp_size_t<Iv> const&,
230 mp11::mp_false const&)
231 {
232
3/4
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::detail::fmt_token_rule_t<boost::urls::grammar::implementation_defined::digit_chars_t> > >::apply<1ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✓ Branch 1 taken 14 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::variant_rule_t<boost::urls::detail::identifier_rule_t, boost::urls::grammar::unsigned_rule<unsigned long> > >, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<1ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✓ Branch 1 taken 56 times.
✗ Branch 1 not taken.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >, boost::urls::grammar::implementation_defined::range_rule_t<boost::urls::detail::segment_template_rule_t, boost::urls::grammar::implementation_defined::tuple_rule_t<boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::segment_template_rule_t> > >::apply<1ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✓ Branch 1 taken 113 times.
6402 v = grammar::parse(
233 6402 it, end, get<Ir>(rn));
234
24/36
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::detail::ipv6_addrz_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✓ Branch 1 taken 24 times.
✓ Branch 2 taken 5 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::detail::ipvfuture_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 5 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::detail::scheme_rule, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✓ Branch 1 taken 969 times.
✓ Branch 2 taken 2505 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::detail::scheme_template_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✓ Branch 1 taken 23 times.
✓ Branch 2 taken 124 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::detail::userinfo_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 1842 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::detail::userinfo_template_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 48 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::ch_delim_rule>::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✓ Branch 1 taken 1 time.
✓ Branch 2 taken 1 time.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::format_spec_rule_t>::apply<1ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 86 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::pct_encoded_fmt_string_rule_t<boost::urls::grammar::lut_chars> >::apply<1ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 20 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::pct_encoded_fmt_string_rule_t<boost::urls::grammar::lut_chars>, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<1ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::segment_template_rule_t>::apply<1ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 429 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::detail::fmt_token_rule_t<boost::urls::grammar::implementation_defined::digit_chars_t> > >::apply<1ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 14 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::variant_rule_t<boost::urls::detail::identifier_rule_t, boost::urls::grammar::unsigned_rule<unsigned long> > >, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<1ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 56 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::implementation_defined::alnum_chars_t> >::apply<1ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::implementation_defined::token_rule_t<boost::urls::grammar::implementation_defined::alpha_chars_t> >::apply<1ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 56 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::grammar::unsigned_rule<unsigned short> >::apply<1ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 3 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::optional_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >, boost::urls::grammar::implementation_defined::range_rule_t<boost::urls::detail::segment_template_rule_t, boost::urls::grammar::implementation_defined::tuple_rule_t<boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule>, boost::urls::detail::segment_template_rule_t> > >::apply<1ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 1ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 113 times.
void boost::urls::grammar::detail::parse_sequence<false, boost::urls::implementation_defined::ipv6_address_rule_t, boost::urls::grammar::implementation_defined::squelch_rule_t<boost::urls::grammar::implementation_defined::ch_delim_rule> >::apply<0ul, 0ul>(char const*&, char const*, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<unsigned long, 0ul> const&, std::integral_constant<bool, false> const&):
✓ Branch 1 taken 17 times.
✓ Branch 2 taken 41 times.
6402 if( !v )
235 1042 return;
236 5360 apply(it, end,
237 mp11::mp_size_t<Ir+1>{},
238 mp11::mp_size_t<Iv+1>{});
239 }
240
241 template<
242 std::size_t Ir = 0,
243 std::size_t Iv = 0>
244 typename std::enable_if<
245 Ir < 1 + sizeof...(Rn)>::type
246 13058 apply(
247 char const*& it,
248 char const* end,
249 mp11::mp_size_t<Ir> const& ir = {},
250 mp11::mp_size_t<Iv> const& iv = {}
251 ) noexcept
252 {
253 13058 apply(it, end, ir, iv, is_void<Ir>{});
254 13058 }
255
256 V
257 7641 make_result() noexcept
258 {
259 7641 return v;
260 }
261 };
262
263 } // detail
264
265 template<
266 class R0,
267 class... Rn>
268 auto
269 11288 implementation_defined::tuple_rule_t<R0, Rn...>::
270 parse(
271 char const*& it,
272 char const* end) const ->
273 system::result<value_type>
274 {
275 detail::parse_sequence<
276 11288 IsList, R0, Rn...> t(this->get());
277 11288 t.apply(it, end);
278 11288 return t.make_result();
279 3067 }
280
281 } // grammar
282 } // urls
283 } // boost
284
285 #endif
286