#include "ikarus/id.h" #include constexpr uint64_t IKARUS_ID_OBJECT_TYPE_BITS = 8; constexpr uint64_t IKARUS_ID_OBJECT_RANDOM_BITS = sizeof(IkarusId) * 8 - IKARUS_ID_OBJECT_TYPE_BITS; auto ikarus_id_from_data_and_type(int64_t data, IkarusObjectType type) -> IkarusId { return data | (static_cast(type) << IKARUS_ID_OBJECT_RANDOM_BITS); } auto ikarus_id_get_object_type(IkarusId id) -> IkarusObjectType { return static_cast(id >> IKARUS_ID_OBJECT_RANDOM_BITS); }