LCOV - code coverage report
Current view: top level - url/detail - print.hpp (source / functions) Coverage Total Hit
Test: coverage_remapped.info Lines: 100.0 % 19 19
Test Date: 2026-02-25 21:00:01 Functions: 100.0 % 3 3

           TLA  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                 : #ifndef BOOST_URL_DETAIL_PRINT_HPP
      11                 : #define BOOST_URL_DETAIL_PRINT_HPP
      12                 : 
      13                 : #include <boost/core/detail/string_view.hpp>
      14                 : #include <cstdint>
      15                 : #include <type_traits>
      16                 : 
      17                 : namespace boost {
      18                 : namespace urls {
      19                 : namespace detail {
      20                 : 
      21                 : // std::uint64_t
      22                 : // 18446744073709551615
      23                 : //          1          2
      24                 : template<class T>
      25                 : struct printed
      26                 :     : std::false_type
      27                 : {
      28                 : };
      29                 : 
      30                 : // 16-bit unsigned
      31                 : template<>
      32                 : class printed<std::uint16_t>
      33                 :     : std::false_type
      34                 : {
      35                 :     char n_;
      36                 :     char buf_[5];
      37                 : 
      38                 : public:
      39 HIT          25 :     printed(std::uint16_t n)
      40              25 :     {
      41              25 :         char* it =
      42              25 :             buf_ + sizeof(buf_);
      43              25 :         if(n == 0)
      44                 :         {
      45              16 :             *--it = '0';
      46              16 :             n_ = 1;
      47                 :         }
      48                 :         else
      49                 :         {
      50              45 :             while(n > 0)
      51                 :             {
      52              36 :                 *--it = '0' + (n % 10);
      53              36 :                 n /= 10;
      54                 :             }
      55               9 :             n_ = static_cast<char>(
      56               9 :                 sizeof(buf_) - (
      57               9 :                     it - buf_));
      58                 :         }
      59              25 :     }
      60                 : 
      61                 :     core::string_view
      62              75 :     string() const noexcept
      63                 :     {
      64             150 :         return core::string_view(buf_ +
      65              75 :             sizeof(buf_) - n_, n_);
      66                 :     }
      67                 : };
      68                 : 
      69                 : template<class T>
      70                 : printed<T>
      71              25 : make_printed(T t)
      72                 : {
      73              25 :     return printed<T>(t);
      74                 : }
      75                 : 
      76                 : } // detail
      77                 : } // urls
      78                 : } // boost
      79                 : 
      80                 : #endif
        

Generated by: LCOV version 2.3