GCC Code Coverage Report


Directory: libs/buffers/
File: boost/buffers/make_buffer.hpp
Date: 2024-07-24 21:34:17
Exec Total Coverage
Lines: 14 14 100.0%
Functions: 6 6 100.0%
Branches: 0 0 -%

Line Branch Exec Source
1 //
2 // Copyright (c) 2023 Vinnie Falco (vinnie.falco@gmail.com)
3 //
4 // Distributed under the Boost Software License, Version 1.0. (See accompanying
5 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 //
7 // Official repository: https://github.com/cppalliance/buffers
8 //
9
10 #ifndef BOOST_BUFFERS_MAKE_BUFFER_HPP
11 #define BOOST_BUFFERS_MAKE_BUFFER_HPP
12
13 #include <boost/buffers/detail/config.hpp>
14 #include <boost/buffers/const_buffer.hpp>
15 #include <boost/buffers/mutable_buffer.hpp>
16 #include <cstdlib>
17 #include <type_traits>
18
19 namespace boost {
20 namespace buffers {
21
22 /** Return a buffer.
23 */
24 inline
25 mutable_buffer
26 1 make_buffer(
27 mutable_buffer const& b) noexcept
28 {
29 1 return b;
30 }
31
32 /** Return a buffer.
33 */
34 inline
35 mutable_buffer
36 576961 make_buffer(
37 void* data,
38 std::size_t size) noexcept
39 {
40 576961 return mutable_buffer(data, size);
41 }
42
43 /** Return a buffer.
44 */
45 inline
46 const_buffer
47 1 make_buffer(
48 const_buffer const& b) noexcept
49 {
50 1 return b;
51 }
52
53 /** Return a buffer.
54 */
55 inline
56 const_buffer
57 16419 make_buffer(
58 void const* data,
59 std::size_t size) noexcept
60 {
61 16419 return const_buffer(data, size);
62 }
63
64 /** Return a buffer.
65 */
66 template<
67 class T, std::size_t N
68 , class = typename std::enable_if<
69 std::is_trivially_copyable<T>::value>::type
70 >
71 mutable_buffer
72 1 make_buffer(
73 T (&data)[N]) noexcept
74 {
75 1 return mutable_buffer(
76 1 data, N * sizeof(T));
77 }
78
79 /** Return a buffer.
80 */
81 template<
82 class T, std::size_t N
83 , class = typename std::enable_if<
84 std::is_trivially_copyable<T>::value>::type
85 >
86 const_buffer
87 1 make_buffer(
88 T const (&data)[N]) noexcept
89 {
90 1 return const_buffer(
91 1 data, N * sizeof(T));
92 }
93
94 } // buffers
95 } // boost
96
97 #endif
98