1 #ifndef OSMIUM_MEMORY_ITEM_HPP 2 #define OSMIUM_MEMORY_ITEM_HPP 37 #include <type_traits> 57 return (length + align_bytes - 1) & ~(align_bytes - 1);
73 ItemHelper() =
default;
75 ~ItemHelper() =
default;
77 ItemHelper(
const ItemHelper&) =
default;
78 ItemHelper(ItemHelper&&) =
default;
80 ItemHelper& operator=(
const ItemHelper&) =
default;
81 ItemHelper& operator=(ItemHelper&&) =
default;
85 unsigned char* data() noexcept {
86 return reinterpret_cast<unsigned char*
>(
this);
89 const unsigned char* data()
const noexcept {
90 return reinterpret_cast<const unsigned char*
>(
this);
97 class Item :
public osmium::memory::detail::ItemHelper {
101 uint16_t m_removed : 1;
102 uint16_t m_padding : 15;
104 template <
typename TMember>
107 template <
typename TMember>
139 unsigned char*
next() noexcept {
140 return data() + padded_size();
143 const unsigned char*
next() const noexcept {
144 return data() + padded_size();
174 #endif // OSMIUM_MEMORY_ITEM_HPP Definition: collection.hpp:47
bool removed() const noexcept
Definition: item.hpp:159
type
Definition: entity_bits.hpp:60
Item & set_type(const item_type item_type) noexcept
Definition: item.hpp:132
Definition: item_iterator.hpp:119
unsigned char * next() noexcept
Definition: item.hpp:139
item_type
Definition: item_type.hpp:43
constexpr item_size_type align_bytes
Definition: item.hpp:53
item_size_type padded_size() const
Definition: item.hpp:151
T padded_length(T length) noexcept
Definition: item.hpp:56
item_size_type byte_size() const noexcept
Definition: item.hpp:147
const unsigned char * next() const noexcept
Definition: item.hpp:143
Namespace for everything in the Osmium library.
Definition: assembler.hpp:59
Item & add_size(const item_size_type size) noexcept
Definition: item.hpp:112
item_size_type m_size
Definition: item.hpp:99
uint32_t size() const noexcept
Definition: builder.hpp:123
void set_removed(bool removed) noexcept
Definition: item.hpp:163
Item(item_size_type size=0, item_type type=item_type()) noexcept
Definition: item.hpp:119
uint32_t item_size_type
Definition: item.hpp:50
item_type type() const noexcept
Definition: item.hpp:155
item_type m_type
Definition: item.hpp:100
Definition: builder.hpp:57
Builder & operator=(const Builder &)=delete