LCOV - code coverage report
Current view: top level - /jenkins/workspace/boost-root/libs/url/src - segments_base.cpp (source / functions) Coverage Total Hit
Test: coverage_remapped.info Lines: 100.0 % 33 33
Test Date: 2026-02-13 15:53:22 Functions: 100.0 % 12 12

            Line data    Source code
       1              : //
       2              : // Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
       3              : // Copyright (c) 2022 Alan de Freitas (alandefreitas@gmail.com)
       4              : //
       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)
       7              : //
       8              : // Official repository: https://github.com/boostorg/url
       9              : //
      10              : 
      11              : 
      12              : #include <boost/url/detail/config.hpp>
      13              : #include <boost/url/segments_base.hpp>
      14              : #include <boost/assert.hpp>
      15              : #include <ostream>
      16              : 
      17              : namespace boost {
      18              : namespace urls {
      19              : 
      20          404 : segments_base::
      21              : segments_base(
      22          404 :     detail::path_ref const& ref) noexcept
      23          404 :     : ref_(ref)
      24              : {
      25          404 : }
      26              : 
      27          539 : segments_base::
      28              : iterator::
      29              : iterator(
      30          539 :     detail::path_ref const& ref) noexcept
      31          539 :     : it_(ref)
      32              : {
      33          539 : }
      34              : 
      35          411 : segments_base::
      36              : iterator::
      37              : iterator(
      38              :     detail::path_ref const& ref,
      39          411 :     int) noexcept
      40          411 :     : it_(ref, 0)
      41              : {
      42          411 : }
      43              : 
      44              : //------------------------------------------------
      45              : //
      46              : // segments_base
      47              : //
      48              : //------------------------------------------------
      49              : 
      50              : 
      51              : 
      52              : pct_string_view
      53           79 : segments_base::
      54              : buffer() const noexcept
      55              : {
      56           79 :     return ref_.buffer();
      57              : }
      58              : 
      59              : bool
      60           41 : segments_base::
      61              : is_absolute() const noexcept
      62              : {
      63           41 :     return ref_.buffer().starts_with('/');
      64              : }
      65              : 
      66              : bool
      67           81 : segments_base::
      68              : empty() const noexcept
      69              : {
      70           81 :     return ref_.nseg() == 0;
      71              : }
      72              : 
      73              : std::size_t
      74          291 : segments_base::
      75              : size() const noexcept
      76              : {
      77          291 :     return ref_.nseg();
      78              : }
      79              : 
      80              : std::string
      81           27 : segments_base::
      82              : front() const noexcept
      83              : {
      84           27 :     BOOST_ASSERT(! empty());
      85           27 :     return *begin();
      86              : }
      87              : 
      88              : std::string
      89           20 : segments_base::
      90              : back() const noexcept
      91              : {
      92           20 :     BOOST_ASSERT(! empty());
      93           20 :     return *--end();
      94              : }
      95              : 
      96              : auto
      97          539 : segments_base::
      98              : begin() const noexcept ->
      99              :     iterator
     100              : {
     101          539 :     return iterator(ref_);
     102              : }
     103              : 
     104              : auto
     105          411 : segments_base::
     106              : end() const noexcept ->
     107              :     iterator
     108              : {
     109          411 :     return iterator(ref_, 0);
     110              : }
     111              : 
     112              : //------------------------------------------------
     113              : 
     114              : std::ostream&
     115           15 : operator<<(
     116              :     std::ostream& os,
     117              :     segments_base const& ps)
     118              : {
     119           15 :     os << ps.buffer();
     120           15 :     return os;
     121              : }
     122              : 
     123              : } // urls
     124              : } // boost
     125              : 
        

Generated by: LCOV version 2.3