tetl 0.1.0
Embedded Template Library
Loading...
Searching...
No Matches
buffer.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: BSL-1.0
2// SPDX-FileCopyrightText: Copyright (C) 2019 Tobias Hienzsch
3
4#ifndef TETL_NET_BUFFER_HPP
5#define TETL_NET_BUFFER_HPP
6
7#include <etl/version.hpp>
8
9#include <etl/array.hpp>
10#include <etl/vector.hpp>
11
12#include <etl/experimental/net/buffer_const.hpp>
13#include <etl/experimental/net/buffer_mutable.hpp>
14
15namespace etl::experimental::net {
16inline auto make_buffer(void* data, size_t size) noexcept -> mutable_buffer
17{
18 return mutable_buffer{data, size};
19}
20
21inline auto make_buffer(void const* data, size_t size) noexcept -> const_buffer
22{
23 return const_buffer{data, size};
24}
25
26template <typename T, etl::size_t Size>
27inline auto make_buffer(etl::array<T, Size>& array) noexcept -> mutable_buffer
28{
29 return mutable_buffer{array.data(), array.size()};
30}
31
32template <typename T, etl::size_t Size>
33inline auto make_buffer(etl::array<T, Size> const& array) noexcept -> const_buffer
34{
35 return const_buffer{array.data(), array.size()};
36}
37
38template <typename T, etl::size_t Size>
39inline auto make_buffer(etl::static_vector<T, Size>& vec) noexcept -> mutable_buffer
40{
41 return mutable_buffer{vec.data(), vec.size()};
42}
43
44template <typename T, etl::size_t Size>
45inline auto make_buffer(etl::static_vector<T, Size> const& vec) noexcept -> const_buffer
46{
47 return const_buffer{vec.data(), vec.size()};
48}
49
50} // namespace etl::experimental::net
51
52#endif // TETL_NET_BUFFER_HPP
Definition buffer.hpp:15
auto make_buffer(void const *data, size_t size) noexcept -> const_buffer
Definition buffer.hpp:21
auto make_buffer(etl::static_vector< T, Size > const &vec) noexcept -> const_buffer
Definition buffer.hpp:45
auto make_buffer(etl::array< T, Size > const &array) noexcept -> const_buffer
Definition buffer.hpp:33
auto make_buffer(etl::static_vector< T, Size > &vec) noexcept -> mutable_buffer
Definition buffer.hpp:39
auto make_buffer(etl::array< T, Size > &array) noexcept -> mutable_buffer
Definition buffer.hpp:27
auto make_buffer(void *data, size_t size) noexcept -> mutable_buffer
Definition buffer.hpp:16
Definition adjacent_find.hpp:9
A container that encapsulates fixed size arrays.
Definition array.hpp:49
Definition buffer_const.hpp:13
const_buffer(void const *data, etl::size_t size)
Construct a buffer to represent a given memory range.
Definition buffer_const.hpp:18
Definition buffer_mutable.hpp:13
mutable_buffer(void *data, etl::size_t size)
Construct a buffer to represent a given memory range.
Definition buffer_mutable.hpp:18
Dynamically-resizable fixed-capacity vector.
Definition static_vector.hpp:401