100.00% Lines (9/9) 100.00% Functions (1/1)
TLA Baseline Branch
Line Hits Code Line Hits Code
1   // 1   //
2   // Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com) 2   // Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com)
3   // Copyright (c) 2022 Alan de Freitas (alandefreitas@gmail.com) 3   // Copyright (c) 2022 Alan de Freitas (alandefreitas@gmail.com)
4   // 4   //
5   // Distributed under the Boost Software License, Version 1.0. (See accompanying 5   // Distributed under the Boost Software License, Version 1.0. (See accompanying
6   // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6   // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7   // 7   //
8   // Official repository: https://github.com/boostorg/http_proto 8   // Official repository: https://github.com/boostorg/http_proto
9   // 9   //
10   10  
11   #ifndef BOOST_URL_IMPL_GRAMMAR_TOKEN_RULE_HPP 11   #ifndef BOOST_URL_IMPL_GRAMMAR_TOKEN_RULE_HPP
12   #define BOOST_URL_IMPL_GRAMMAR_TOKEN_RULE_HPP 12   #define BOOST_URL_IMPL_GRAMMAR_TOKEN_RULE_HPP
13   13  
14   #include <boost/url/grammar/error.hpp> 14   #include <boost/url/grammar/error.hpp>
15   15  
16   namespace boost { 16   namespace boost {
17   namespace urls { 17   namespace urls {
18   namespace grammar { 18   namespace grammar {
19   19  
20   template<class CharSet> 20   template<class CharSet>
21   BOOST_URL_CXX20_CONSTEXPR 21   BOOST_URL_CXX20_CONSTEXPR
22   auto 22   auto
HITCBC 23   678 implementation_defined::token_rule_t<CharSet>:: 23   678 implementation_defined::token_rule_t<CharSet>::
24   parse( 24   parse(
25   char const*& it, 25   char const*& it,
26   char const* end 26   char const* end
27   ) const noexcept -> 27   ) const noexcept ->
28   system::result<value_type> 28   system::result<value_type>
29   { 29   {
HITCBC 30   678 auto const it0 = it; 30   678 auto const it0 = it;
HITCBC 31   678 if(it == end) 31   678 if(it == end)
32   { 32   {
HITCBC 33   6 BOOST_URL_CONSTEXPR_RETURN_EC( 33   6 BOOST_URL_CONSTEXPR_RETURN_EC(
34   error::need_more); 34   error::need_more);
35   } 35   }
HITCBC 36   672 auto const& cs = this->get(); 36   672 auto const& cs = this->get();
HITCBC 37   672 it = grammar::find_if_not(it, end, cs); 37   672 it = grammar::find_if_not(it, end, cs);
HITCBC 38   672 if(it != it0) 38   672 if(it != it0)
HITCBC 39   607 return core::string_view(it0, it - it0); 39   607 return core::string_view(it0, it - it0);
HITCBC 40   65 BOOST_URL_CONSTEXPR_RETURN_EC( 40   65 BOOST_URL_CONSTEXPR_RETURN_EC(
41   error::mismatch); 41   error::mismatch);
42   } 42   }
43   43  
44   } // grammar 44   } // grammar
45   } // urls 45   } // urls
46   } // boost 46   } // boost
47   47  
48   #endif 48   #endif