LCOV - code coverage report
Current view: top level - libs/url/src - segments_encoded_base.cpp (source / functions) Hit Total Coverage
Test: coverage_filtered.info Lines: 27 27 100.0 %
Date: 2024-03-13 19:32:03 Functions: 10 10 100.0 %

          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_encoded_base.hpp>
      14             : #include <boost/assert.hpp>
      15             : #include <ostream>
      16             : 
      17             : namespace boost {
      18             : namespace urls {
      19             : 
      20        1710 : segments_encoded_base::
      21             : iterator::
      22             : iterator(
      23        1710 :     detail::path_ref const& ref) noexcept
      24        1710 :     : it_(ref)
      25             : {
      26        1710 : }
      27             : 
      28        1417 : segments_encoded_base::
      29             : iterator::
      30             : iterator(
      31             :     detail::path_ref const& ref,
      32        1417 :     int) noexcept
      33        1417 :     : it_(ref, 0)
      34             : {
      35        1417 : }
      36             : 
      37             : //------------------------------------------------
      38             : //
      39             : // segments_encoded_base
      40             : //
      41             : //------------------------------------------------
      42             : 
      43        1296 : segments_encoded_base::
      44             : segments_encoded_base(
      45        1296 :     detail::path_ref const& ref) noexcept
      46        1296 :     : ref_(ref)
      47             : {
      48        1296 : }
      49             : 
      50             : //------------------------------------------------
      51             : //
      52             : // Observers
      53             : //
      54             : //------------------------------------------------
      55             : 
      56             : pct_string_view
      57          47 : segments_encoded_base::
      58             : buffer() const noexcept
      59             : {
      60          47 :     return ref_.buffer();
      61             : }
      62             : 
      63             : bool
      64         373 : segments_encoded_base::
      65             : is_absolute() const noexcept
      66             : {
      67         373 :     return ref_.buffer().starts_with('/');
      68             : }
      69             : 
      70             : bool
      71         582 : segments_encoded_base::
      72             : empty() const noexcept
      73             : {
      74         582 :     return ref_.nseg() == 0;
      75             : }
      76             : 
      77             : std::size_t
      78         413 : segments_encoded_base::
      79             : size() const noexcept
      80             : {
      81         413 :     return ref_.nseg();
      82             : }
      83             : 
      84             : auto
      85        1710 : segments_encoded_base::
      86             : begin() const noexcept ->
      87             :     iterator
      88             : {
      89        1710 :     return iterator(ref_);
      90             : }
      91             : 
      92             : auto
      93        1417 : segments_encoded_base::
      94             : end() const noexcept ->
      95             :     iterator
      96             : {
      97        1417 :     return iterator(ref_, 0);
      98             : }
      99             : 
     100             : //------------------------------------------------
     101             : 
     102             : std::ostream&
     103          15 : operator<<(
     104             :     std::ostream& os,
     105             :     segments_encoded_base const& ps)
     106             : {
     107          15 :     os << ps.buffer();
     108          15 :     return os;
     109             : }
     110             : 
     111             : } // urls
     112             : } // boost
     113             : 

Generated by: LCOV version 1.15