LCOV - code coverage report
Current view: top level - libs/url/src/grammar - error.cpp (source / functions) Hit Total Coverage
Test: coverage_filtered.info Lines: 25 25 100.0 %
Date: 2024-03-15 21:27:27 Functions: 7 7 100.0 %

          Line data    Source code
       1             : //
       2             : // Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.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             : 
      11             : #include <boost/url/detail/config.hpp>
      12             : #include <boost/url/grammar/error.hpp>
      13             : 
      14             : namespace boost {
      15             : namespace urls {
      16             : namespace grammar {
      17             : 
      18             : namespace detail {
      19             : 
      20             : const char*
      21          72 : error_cat_type::
      22             : name() const noexcept
      23             : {
      24          72 :     return "boost.url.grammar";
      25             : }
      26             : 
      27             : std::string
      28          72 : error_cat_type::
      29             : message(int code) const
      30             : {
      31          72 :     return message(code, nullptr, 0);
      32             : }
      33             : 
      34             : char const*
      35          72 : error_cat_type::
      36             : message(
      37             :     int code,
      38             :     char*,
      39             :     std::size_t) const noexcept
      40             : {
      41          72 :     switch(static_cast<error>(code))
      42             :     {
      43           1 :     default:
      44           1 : case error::need_more: return "need more";
      45          14 : case error::mismatch: return "mismatch";
      46          13 : case error::invalid: return "invalid";
      47           1 : case error::end_of_range: return "end of range";
      48          42 : case error::leftover: return "leftover";
      49           1 : case error::out_of_range: return "out of range";
      50             :     }
      51             : }
      52             : 
      53             : system::error_condition
      54           6 : error_cat_type::
      55             : default_error_condition(
      56             :     int ev) const noexcept
      57             : {
      58           6 :     switch(static_cast<error>(ev))
      59             :     {
      60           2 : case error::invalid:
      61             : case error::out_of_range:
      62           2 :         return condition::fatal;
      63           4 :     default:
      64           4 :         return {ev, *this};
      65             :     }
      66             : }
      67             : 
      68             : //------------------------------------------------
      69             : 
      70             : const char*
      71           5 : condition_cat_type::
      72             : name() const noexcept
      73             : {
      74           5 :     return "boost.url.grammar";
      75             : }
      76             : 
      77             : std::string
      78           5 : condition_cat_type::
      79             : message(int code) const
      80             : {
      81           5 :     return message(code, nullptr, 0);
      82             : }
      83             : 
      84             : char const*
      85           5 : condition_cat_type::
      86             : message(
      87             :     int code, char*, std::size_t) const noexcept
      88             : {
      89             :     switch(static_cast<condition>(code))
      90             :     {
      91             :     default:
      92             :     case condition::fatal:
      93           5 :         return "fatal condition";
      94             :     }
      95             : }
      96             : 
      97             : //-----------------------------------------------
      98             : 
      99             : // msvc 14.0 has a bug that warns about inability
     100             : // to use constexpr construction here, even though
     101             : // there's no constexpr construction
     102             : #if defined(_MSC_VER) && _MSC_VER <= 1900
     103             : # pragma warning( push )
     104             : # pragma warning( disable : 4592 )
     105             : #endif
     106             : 
     107             : error_cat_type error_cat;
     108             : condition_cat_type condition_cat;
     109             : 
     110             : #if defined(_MSC_VER) && _MSC_VER <= 1900
     111             : # pragma warning( pop )
     112             : #endif
     113             : 
     114             : } // detail
     115             : 
     116             : } // grammar
     117             : } // urls
     118             : } // boost
     119             : 

Generated by: LCOV version 1.15