LCOV - code coverage report
Current view: top level - boost/url/grammar/impl/parse.hpp (source / functions) Coverage Total Hit
Test: coverage_filtered.info Lines: 100.0 % 11 11
Test Date: 2024-08-20 16:05:53 Functions: 99.2 % 132 131

            Line data    Source code
       1              : //
       2              : // Copyright (c) 2016-2019 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_PARSE_HPP
      11              : #define BOOST_URL_GRAMMAR_IMPL_PARSE_HPP
      12              : 
      13              : #include <boost/url/grammar/error.hpp>
      14              : #include <boost/url/grammar/type_traits.hpp>
      15              : 
      16              : namespace boost {
      17              : namespace urls {
      18              : namespace grammar {
      19              : 
      20              : template<class R>
      21              : BOOST_URL_NO_INLINE
      22              : auto
      23        66940 : parse(
      24              :     char const*& it,
      25              :     char const* end,
      26              :     R const& r) ->
      27              :         system::result<typename R::value_type>
      28              : {
      29              :     // If this goes off, it means the rule
      30              :     // passed in did not meet the requirements.
      31              :     // Please check the documentation.
      32              :     static_assert(
      33              :         is_rule<R>::value,
      34              :         "Rule requirements not met");
      35              : 
      36        66940 :     return r.parse(it, end);
      37              : }
      38              : 
      39              : template<class R>
      40              : BOOST_URL_NO_INLINE
      41              : auto
      42         5776 : parse(
      43              :     core::string_view s,
      44              :     R const& r) ->
      45              :         system::result<typename R::value_type>
      46              : {
      47              :     // If this goes off, it means the rule
      48              :     // passed in did not meet the requirements.
      49              :     // Please check the documentation.
      50              :     static_assert(
      51              :         is_rule<R>::value,
      52              :         "Rule requirements not met");
      53              : 
      54         5776 :     auto it = s.data();
      55         5776 :     auto const end = it + s.size();
      56         5776 :     auto rv = r.parse(it, end);
      57        10773 :     if( rv &&
      58         4997 :         it != end)
      59          233 :         return error::leftover;
      60         5543 :     return rv;
      61          633 : }
      62              : 
      63              : } // grammar
      64              : } // urls
      65              : } // boost
      66              : 
      67              : #endif
        

Generated by: LCOV version 2.1