LCOV - code coverage report
Current view: top level - libs/url/src - url_view.cpp (source / functions) Hit Total Coverage
Test: coverage_filtered.info Lines: 22 23 95.7 %
Date: 2024-03-13 19:32:03 Functions: 4 4 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/url_view.hpp>
      14             : #include <boost/url/parse.hpp>
      15             : #include <boost/url/detail/except.hpp>
      16             : 
      17             : namespace boost {
      18             : namespace urls {
      19             : 
      20             : namespace detail {
      21             : 
      22             : url_view
      23        3533 : url_impl::
      24             : construct() const noexcept
      25             : {
      26        3533 :     return url_view(*this);
      27             : }
      28             : 
      29             : } // detail
      30             : 
      31             : //------------------------------------------------
      32             : 
      33             : url_view::
      34             : url_view() noexcept = default;
      35             : 
      36         264 : url_view::
      37         264 : url_view(core::string_view s)
      38         264 :     : url_view(parse_uri_reference(s
      39         264 :         ).value(BOOST_URL_POS))
      40             : {
      41         263 : }
      42             : 
      43       15729 : url_view::
      44             : url_view(
      45       15729 :     url_view_base const& u) noexcept
      46       15729 :     : url_view_base(u.impl_)
      47             : {
      48       15729 :     if (u.pi_->from_ == from::url)
      49             :     {
      50         145 :         pi_ = u.pi_;
      51             :     }
      52             :     else
      53             :     {
      54       15584 :         impl_ = u.impl_;
      55       15584 :         pi_ = &impl_;
      56             :     }
      57       15729 : }
      58             : 
      59             : url_view&
      60          13 : url_view::
      61             : operator=(
      62             :     url_view_base const& u) noexcept
      63             : {
      64          13 :     if (pi_ == u.pi_)
      65           1 :         return *this;
      66             : 
      67          12 :     if (u.pi_->from_ == from::url)
      68             :     {
      69           0 :         pi_ = u.pi_;
      70             :     }
      71             :     else
      72             :     {
      73          12 :         impl_ = u.impl_;
      74          12 :         pi_ = &impl_;
      75             :     }
      76          12 :     return *this;
      77             : }
      78             : 
      79             : } // urls
      80             : } // boost
      81             : 

Generated by: LCOV version 1.15