src/scheme.cpp

100.0% Lines (23/23) 100.0% Functions (2/2) 100.0% Branches (12/12)
src/scheme.cpp
Line Branch Hits Source Code
1 //
2 // Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
3 // Copyright (c) 2023 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/scheme.hpp>
14 #include <boost/url/grammar/ci_string.hpp>
15
16 namespace boost {
17 namespace urls {
18
19 core::string_view
20 53 to_string(scheme s) noexcept
21 {
22
8/8
✓ Branch 0 taken 4 times.
✓ Branch 1 taken 3 times.
✓ Branch 2 taken 3 times.
✓ Branch 3 taken 5 times.
✓ Branch 4 taken 11 times.
✓ Branch 5 taken 5 times.
✓ Branch 6 taken 1 time.
✓ Branch 7 taken 21 times.
53 switch(s)
23 {
24 4 case scheme::ftp: return "ftp";
25 3 case scheme::file: return "file";
26 3 case scheme::http: return "http";
27 5 case scheme::https: return "https";
28 11 case scheme::ws: return "ws";
29 5 case scheme::wss: return "wss";
30 1 case scheme::none: return {};
31 21 default:
32 21 break;
33 }
34 21 return "<unknown>";
35 }
36
37 std::uint16_t
38 8 default_port(scheme s) noexcept
39 {
40
4/4
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 3 times.
8 switch(s)
41 {
42 1 case scheme::ftp:
43 1 return 21;
44 2 case scheme::http:
45 case scheme::ws:
46 2 return 80;
47 2 case scheme::https:
48 case scheme::wss:
49 2 return 443;
50 3 default:
51 3 break;
52 }
53 3 return 0;
54 }
55
56 } // urls
57 } // boost
58
59