LCOV - code coverage report
Current view: top level - boost/buffers/make_buffer.hpp (source / functions) Coverage Total Hit
Test: coverage_filtered.info Lines: 100.0 % 14 14
Test Date: 2024-07-24 21:34:17 Functions: 100.0 % 6 6

            Line data    Source code
       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
        

Generated by: LCOV version 2.1