1 #ifndef OSMIUM_MEMORY_ITEM_HPP
2 #define OSMIUM_MEMORY_ITEM_HPP
38 #include <type_traits>
58 return (length + align_bytes - 1) & ~(align_bytes - 1);
74 ItemHelper() =
default;
76 ~ItemHelper() =
default;
78 ItemHelper(
const ItemHelper&) =
default;
79 ItemHelper(ItemHelper&&) =
default;
81 ItemHelper& operator=(
const ItemHelper&) =
default;
82 ItemHelper& operator=(ItemHelper&&) =
default;
86 unsigned char* data() noexcept {
87 return reinterpret_cast<unsigned char*
>(
this);
90 const unsigned char* data() const noexcept {
91 return reinterpret_cast<const unsigned char*
>(
this);
98 class Item :
public osmium::memory::detail::ItemHelper {
105 template <
class TMember>
108 template <
class TMember>
140 unsigned char*
next() noexcept {
144 const unsigned char*
next() const noexcept {
175 #endif // OSMIUM_MEMORY_ITEM_HPP
Definition: collection.hpp:48
Item & set_type(const item_type item_type) noexcept
Definition: item.hpp:133
Definition: item_iterator.hpp:131
unsigned char * next() noexcept
Definition: item.hpp:140
item_type
Definition: item_type.hpp:43
constexpr item_size_type align_bytes
Definition: item.hpp:54
item_size_type padded_size() const
Definition: item.hpp:152
T padded_length(T length) noexcept
Definition: item.hpp:57
Namespace for everything in the Osmium library.
Definition: assembler.hpp:55
uint16_t m_removed
Definition: item.hpp:102
Item & add_size(const item_size_type size) noexcept
Definition: item.hpp:113
const unsigned char * next() const noexcept
Definition: item.hpp:144
uint16_t m_padding
Definition: item.hpp:103
item_size_type m_size
Definition: item.hpp:100
void set_removed(bool removed) noexcept
Definition: item.hpp:164
bool removed() const noexcept
Definition: item.hpp:160
item_size_type byte_size() const noexcept
Definition: item.hpp:148
Item(item_size_type size=0, item_type type=item_type()) noexcept
Definition: item.hpp:120
Item & operator=(const Item &)=delete
uint32_t size() const noexcept
Definition: builder.hpp:123
uint32_t item_size_type
Definition: item.hpp:51
item_type m_type
Definition: item.hpp:101
item_type type() const noexcept
Definition: item.hpp:156
Definition: builder.hpp:57