GCC Code Coverage Report


Directory: libs/url/
File: src/url_view.cpp
Date: 2025-11-10 19:06:22
Exec Total Coverage
Lines: 24 24 100.0%
Functions: 5 5 100.0%
Branches: 9 10 90.0%

Line Branch Exec Source
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 3571 url_impl::
24 construct() const noexcept
25 {
26 3571 return url_view(*this);
27 }
28
29 } // detail
30
31 //------------------------------------------------
32
33 32 url_view::
34 url_view() noexcept = default;
35
36 270 url_view::
37 270 url_view(core::string_view s)
38
1/2
✓ Branch 1 taken 270 times.
✗ Branch 2 not taken.
270 : url_view(parse_uri_reference(s
39
2/2
✓ Branch 2 taken 269 times.
✓ Branch 3 taken 1 times.
270 ).value(BOOST_URL_POS))
40 {
41 269 }
42
43 15916 url_view::
44 url_view(
45 15916 url_view_base const& u) noexcept
46 15916 : url_view_base(u.impl_)
47 {
48
2/2
✓ Branch 0 taken 146 times.
✓ Branch 1 taken 15770 times.
15916 if (u.pi_->from_ == from::url)
49 {
50 146 pi_ = u.pi_;
51 }
52 else
53 {
54 15770 impl_ = u.impl_;
55 15770 pi_ = &impl_;
56 }
57 15916 }
58
59 url_view&
60 14 url_view::
61 operator=(
62 url_view_base const& u) noexcept
63 {
64
2/2
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 13 times.
14 if (pi_ == u.pi_)
65 1 return *this;
66
67
2/2
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 12 times.
13 if (u.pi_->from_ == from::url)
68 {
69 1 pi_ = u.pi_;
70 }
71 else
72 {
73 12 impl_ = u.impl_;
74 12 pi_ = &impl_;
75 }
76 13 return *this;
77 }
78
79 } // urls
80 } // boost
81
82