20#include "pw_bytes/span.h"
21#include "pw_result/result.h"
23namespace pw::allocator {
51template <
typename T,
size_t kBufferSize,
size_t kAlignment = 1>
54 static constexpr size_t kCapacity = kBufferSize;
56 ByteSpan as_bytes() {
return buffer_; }
57 std::byte* data() {
return buffer_.data(); }
58 size_t size()
const {
return buffer_.size(); }
60 T& operator*() {
return obj_; }
61 const T& operator*()
const {
return obj_; }
63 T* operator->() {
return &obj_; }
64 const T* operator->()
const {
return &obj_; }
67 alignas(kAlignment) std::array<std::byte, kBufferSize> buffer_;
72template <
size_t kBufferSize,
size_t kAlignment>
74 constexpr ByteSpan as_span() {
return ByteSpan(bytes_); }
76 alignas(kAlignment) std::array<std::byte, kBufferSize> bytes_;
Convenience alias for creating aligned byte buffers.
Definition: buffer.h:73