finalise interface & documentation
Signed-off-by: Folling <mail@folling.io>
This commit is contained in:
parent
c5157bd849
commit
52580a4382
56 changed files with 2074 additions and 780 deletions
26
src/id.cpp
26
src/id.cpp
|
|
@ -4,28 +4,28 @@
|
|||
|
||||
#include <ikarus/objects/object_type.h>
|
||||
|
||||
IkarusId ikarus_id_from_data(int64_t data) {
|
||||
return IkarusId{.data = data};
|
||||
uint64_t const IKARUS_ID_OBJECT_TYPE_BITS = 8;
|
||||
uint64_t const IKARUS_ID_OBJECT_RANDOM_BITS = sizeof(IkarusId) - IKARUS_ID_OBJECT_TYPE_BITS;
|
||||
|
||||
auto ikarus_id_get_object_type(IkarusId id) -> IkarusObjectType {
|
||||
return static_cast<IkarusObjectType>(id >> IKARUS_ID_OBJECT_RANDOM_BITS);
|
||||
}
|
||||
|
||||
IkarusObjectType ikarus_id_get_object_type(IkarusId id) {
|
||||
return static_cast<IkarusObjectType>(id.data >> 56);
|
||||
auto ikarus_id_is_equal(IkarusId left, IkarusId right) -> bool {
|
||||
return left == right;
|
||||
}
|
||||
|
||||
bool ikarus_id_is_equal(IkarusId left, IkarusId right) {
|
||||
return left.data == right.data;
|
||||
}
|
||||
|
||||
bool ikarus_id_is_none(IkarusId id) {
|
||||
auto ikarus_id_is_none(IkarusId id) -> bool {
|
||||
return ikarus_id_is_equal(id, IKARUS_ID_NONE);
|
||||
}
|
||||
|
||||
bool ikarus_id_is_unspecified(IkarusId id) {
|
||||
auto ikarus_id_is_unspecified(IkarusId id) -> bool {
|
||||
return ikarus_id_is_equal(id, IKARUS_ID_UNSPECIFIED);
|
||||
}
|
||||
|
||||
TEST_CASE("id_object_type", "[id]") {
|
||||
auto id = ikarus_id_from_data(static_cast<uint64_t>(IkarusObjectType_Blueprint) << 56);
|
||||
// NOLINTNEXTLINE(readability-magic-numbers)
|
||||
auto id = static_cast<uint64_t>(IkarusObjectType_Blueprint) << IKARUS_ID_OBJECT_RANDOM_BITS;
|
||||
|
||||
REQUIRE(ikarus_id_get_object_type(id) == IkarusObjectType_Blueprint);
|
||||
REQUIRE(!ikarus_id_is_none(id) == IkarusObjectType_Blueprint);
|
||||
|
|
@ -33,9 +33,9 @@ TEST_CASE("id_object_type", "[id]") {
|
|||
}
|
||||
|
||||
TEST_CASE("id_equal", "[id]") {
|
||||
auto id = ikarus_id_from_data(static_cast<uint64_t>(IkarusObjectType_Blueprint) << 56);
|
||||
auto id = static_cast<uint64_t>(IkarusObjectType_Blueprint) << IKARUS_ID_OBJECT_RANDOM_BITS;
|
||||
auto copy = id;
|
||||
auto third = ikarus_id_from_data(static_cast<uint64_t>(IkarusObjectType_Property) << 56);
|
||||
auto third = static_cast<uint64_t>(IkarusObjectType_Property) << IKARUS_ID_OBJECT_RANDOM_BITS;
|
||||
|
||||
REQUIRE(ikarus_id_is_equal(id, copy));
|
||||
REQUIRE(!ikarus_id_is_equal(id, third));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue