Line data Source code
1 : //
2 : // Copyright (c) 2025 Mohammad Nejati
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/http_proto
8 : //
9 :
10 : #ifndef BOOST_HTTP_PROTO_DETAIL_BUFFER_UTILS_HPP
11 : #define BOOST_HTTP_PROTO_DETAIL_BUFFER_UTILS_HPP
12 :
13 : #include <boost/buffers/buffer.hpp>
14 : #include <boost/core/span.hpp>
15 : #include <iterator>
16 :
17 : namespace boost {
18 : namespace http_proto {
19 : namespace detail {
20 :
21 : template<typename BufferSequence>
22 : auto
23 126763 : make_span(BufferSequence const& bs) ->
24 : boost::span<typename std::iterator_traits<decltype(buffers::begin(bs))>::value_type const>
25 : {
26 : return { &*buffers::begin(bs),
27 253526 : std::size_t(std::distance(buffers::begin(bs), buffers::end(bs))) };
28 : }
29 :
30 : } // detail
31 : } // http_proto
32 : } // boost
33 :
34 : #endif
|