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 3877 parse_sequence(
53 R const& rn_) noexcept
54 3877 : rn(rn_)
55 3877 , vn(mp11::mp_fill<
56 3877 V, system::error_code>{})
57 {
58 3877 }
59
60 void
61 1229 apply(
62 char const*&,
63 char const*,
64 ...) const noexcept
65 {
66 1229 }
67
68 // for system::result<void>
69 template<
70 std::size_t Ir,
71 std::size_t Iv>
72 void
73 1606 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 178 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 155 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 138 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 745 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 387 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.
1606 grammar::parse(
82 1606 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 163 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 150 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 134 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 358 times.
✓ Branch 2 taken 387 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 382 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.
1606 if( !rv )
84 {
85 387 ec = rv.error();
86 387 return;
87 }
88 1219 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 5117 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 5117 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 379 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 387 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 387 times.
5117 rv = grammar::parse(
106 5117 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 378 times.
✓ Branch 2 taken 379 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 379 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 1821 times.
✓ Branch 2 taken 178 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 155 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 138 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 118 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 387 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 387 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.
5117 if( !rv )
108 {
109 2261 ec = rv.error();
110 2261 return;
111 }
112 2856 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 6723 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 6723 apply(it, end, ir, iv, is_void<Ir>{});
130 6723 }
131
132 struct deref
133 {
134 template<class R>
135 auto
136 2725 operator()(R const& r) const ->
137 decltype(*r)
138 {
139 2725 return *r;
140 }
141 };
142
143 auto
144 3877 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 378 times.
✓ Branch 2 taken 379 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 1881 times.
✓ Branch 2 taken 118 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 363 times.
✓ Branch 2 taken 382 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.
3877 if(ec.failed())
149 2648 return ec;
150 return mp11::tuple_transform(
151 1229 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 7996 parse_sequence(
181 R const& rn_) noexcept
182 7996 : rn(rn_)
183 7996 , v(system::error_code{})
184 {
185 7996 }
186
187 void
188 3734 apply(
189 char const*&,
190 char const*,
191 ...) const noexcept
192 {
193 3734 }
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 7011 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 2627 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 132 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 1950 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 54 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 387 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 234 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 55 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 596 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.
7011 grammar::parse(
210 7011 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 205 times.
✓ Branch 2 taken 2422 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 66 times.
✓ Branch 2 taken 66 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 1545 times.
✓ Branch 2 taken 405 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 45 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 301 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 214 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 37 times.
✓ Branch 2 taken 18 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 540 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.
7011 if( !rv )
212 {
213 3220 v = rv.error();
214 3220 return;
215 }
216 3791 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 6650 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 18 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.
6650 v = grammar::parse(
233 6650 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 2627 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 132 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 1950 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 54 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 18 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.
6650 if( !v )
235 1042 return;
236 5608 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 13661 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 13661 apply(it, end, ir, iv, is_void<Ir>{});
254 13661 }
255
256 V
257 7996 make_result() noexcept
258 {
259 7996 return v;
260 }
261 };
262
263 } // detail
264
265 template<
266 class R0,
267 class... Rn>
268 auto
269 11873 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 11873 IsList, R0, Rn...> t(this->get());
277 11873 t.apply(it, end);
278 11873 return t.make_result();
279 3234 }
280
281 } // grammar
282 } // urls
283 } // boost
284
285 #endif
286