restructure into smaller files & add IWYU/clang-tidy

Signed-off-by: Folling <mail@folling.io>
This commit is contained in:
folling 2023-08-29 14:12:08 +02:00 committed by Folling
parent 660736133a
commit 13eee8b168
Signed by: folling
SSH key fingerprint: SHA256:S9qEx5WCFFLK49tE/LKnKuJYM5sw+++Dn6qJbbyxnCY
28 changed files with 845 additions and 556 deletions

56
src/id.cpp Normal file
View file

@ -0,0 +1,56 @@
#include "ikarus/id.h"
#include <catch2/catch_test_macros.hpp>
#include <ikarus/objects/object_type.h>
IkarusId ikarus_id_from_data(int64_t data) {
return IkarusId{.data = data};
}
IkarusObjectType ikarus_id_get_object_type(IkarusId id) {
return static_cast<IkarusObjectType>(id.data >> 56);
}
bool ikarus_id_is_equal(IkarusId left, IkarusId right) {
return left.data == right.data;
}
bool ikarus_id_is_none(IkarusId id) {
return ikarus_id_is_equal(id, IKARUS_ID_NONE);
}
bool ikarus_id_is_unspecified(IkarusId id) {
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);
REQUIRE(ikarus_id_get_object_type(id) == IkarusObjectType_Blueprint);
REQUIRE(!ikarus_id_is_none(id) == IkarusObjectType_Blueprint);
REQUIRE(!ikarus_id_is_unspecified(id) == IkarusObjectType_Blueprint);
}
TEST_CASE("id_equal", "[id]") {
auto id = ikarus_id_from_data(static_cast<uint64_t>(IkarusObjectType_Blueprint) << 56);
auto copy = id;
auto third = ikarus_id_from_data(static_cast<uint64_t>(IkarusObjectType_Property) << 56);
REQUIRE(ikarus_id_is_equal(id, copy));
REQUIRE(!ikarus_id_is_equal(id, third));
}
TEST_CASE("id_none", "[id]") {
auto id = IKARUS_ID_NONE;
REQUIRE(ikarus_id_is_none(id));
REQUIRE(!ikarus_id_is_unspecified(id));
}
TEST_CASE("id_unspecified", "[id]") {
auto id = IKARUS_ID_UNSPECIFIED;
REQUIRE(!ikarus_id_is_none(id));
REQUIRE(ikarus_id_is_unspecified(id));
}