48 template<
typename...
Args>
56 if (
dense_idx != std::numeric_limits<USize>::max()) {
74 if (
dense_idx == std::numeric_limits<USize>::max())
104 if (
dense_idx == std::numeric_limits<USize>::max())
120 if (
dense_idx == std::numeric_limits<USize>::max())
159 const char*
ptr = data.data();
199 for (
U32 i = 0;
i < count; ++
i) {
202 e.generation =
s.read<
U32>();
206 for (
U32 i = 0;
i < count; ++
i) {
Definition component_registration.hpp:68
consteval USize log2_int(std::unsigned_integral auto n)
Definition math_utils.hpp:10
Definition Application.hpp:22
Definition arena_vec.hpp:6
T * push_array(this Arena &arena, U64 count)
Definition arena.hpp:120
static void deserialize(T &component, Serializer &s)=delete
static void serialize(const T &component, Serializer &s)=delete
U32 index
Definition Entity.hpp:19
Definition RuntimeStateManager.hpp:24
Definition serialization.hpp:38
Definition SparseEntitySet.hpp:12
const ArenaVec< Entity > & get_dense_entities() const
Definition SparseEntitySet.hpp:130
void deserialize(Serializer &s)
Definition SparseEntitySet.hpp:197
U64 sparse_cap
Definition SparseEntitySet.hpp:21
void serialize(Serializer &s) const
Definition SparseEntitySet.hpp:184
bool remove(Entity entity)
Definition SparseEntitySet.hpp:66
static constexpr USize MASK
Definition SparseEntitySet.hpp:15
T * operator[](Entity idx)
Definition SparseEntitySet.hpp:128
T * get(Entity entity)
Definition SparseEntitySet.hpp:96
void clear()
Definition SparseEntitySet.hpp:134
U64 sparse_count
Definition SparseEntitySet.hpp:20
const T * get(Entity entity) const
Definition SparseEntitySet.hpp:112
void deserialize_from(const std::vector< char > &data)
Definition SparseEntitySet.hpp:158
static constexpr USize SHIFT
Definition SparseEntitySet.hpp:14
USize ** sparse_pages
Definition SparseEntitySet.hpp:19
ArenaVec< Entity > dense_entities
Definition SparseEntitySet.hpp:24
USize size() const
Definition SparseEntitySet.hpp:132
ArenaVec< T > dense_data
Definition SparseEntitySet.hpp:23
Arena * arena
Definition SparseEntitySet.hpp:17
void add(Entity entity, Args &&... args)
Definition SparseEntitySet.hpp:49
static constexpr USize PAGE_SIZE
Definition SparseEntitySet.hpp:13
void ensure_page(USize page)
Definition SparseEntitySet.hpp:26
void serialize_to(std::vector< char > &out) const
Definition SparseEntitySet.hpp:142
consteval U64 type_id_of()
Definition type_id.hpp:6
std::uint32_t U32
Definition types.hpp:15
std::size_t USize
Definition types.hpp:18
std::uint64_t U64
Definition types.hpp:16