16#include "pw_bytes/alignment.h"
17#include "pw_span/internal/config.h"
18#include "pw_span/span.h"
23template <
class ResultT,
size_t kSourceExtentBytes>
24using SpanFromBytes = span<ResultT,
25 (kSourceExtentBytes == dynamic_extent
27 : kSourceExtentBytes /
sizeof(ResultT))>;
55template <
class ResultT,
size_t kSourceExtentBytes>
58 static_assert(
sizeof(ResultT) == 1);
60 ResultT*
const ptr =
reinterpret_cast<ResultT*
>(bytes.data());
61 const size_t count = bytes.size() /
sizeof(ResultT);
66 _PW_SPAN_ASSERT(IsAlignedAs<ResultT>(result.data()));
67 _PW_SPAN_ASSERT(result.size_bytes() == bytes.size_bytes());
95template <
class ResultT,
size_t kSourceExtentBytes>
98 static_assert(
sizeof(ResultT) == 1);
100 const ResultT*
const ptr =
reinterpret_cast<const ResultT*
>(bytes.data());
101 const size_t count = bytes.size() /
sizeof(ResultT);
106 _PW_SPAN_ASSERT(IsAlignedAs<const ResultT>(result.data()));
107 _PW_SPAN_ASSERT(result.size_bytes() == bytes.size_bytes());
Definition: span_impl.h:235
internal::SpanFromBytes< ResultT, kSourceExtentBytes > span_cast(span< std::byte, kSourceExtentBytes > bytes)
Definition: cast.h:56
The Pigweed namespace.
Definition: alignment.h:27