expose id getters
Signed-off-by: Folling <mail@folling.io>
This commit is contained in:
parent
31e8432ccf
commit
9299c85d65
7 changed files with 55 additions and 0 deletions
|
|
@ -4,6 +4,7 @@
|
||||||
/// \author Folling <folling@ikarus.world>
|
/// \author Folling <folling@ikarus.world>
|
||||||
|
|
||||||
#include <ikarus/errors.h>
|
#include <ikarus/errors.h>
|
||||||
|
#include <ikarus/id.h>
|
||||||
#include <ikarus/macros.h>
|
#include <ikarus/macros.h>
|
||||||
#include <ikarus/stdtypes.h>
|
#include <ikarus/stdtypes.h>
|
||||||
|
|
||||||
|
|
@ -38,6 +39,14 @@ IKA_API IkarusBlueprint * ikarus_blueprint_create(struct IkarusProject * project
|
||||||
/// \remark The blueprint must not be accessed after deletion.
|
/// \remark The blueprint must not be accessed after deletion.
|
||||||
IKA_API void ikarus_blueprint_delete(IkarusBlueprint * blueprint, IkarusErrorData * error_out);
|
IKA_API void ikarus_blueprint_delete(IkarusBlueprint * blueprint, IkarusErrorData * error_out);
|
||||||
|
|
||||||
|
/// \brief Gets the ID of a blueprint.
|
||||||
|
/// \param blueprint The blueprint to get the ID of.
|
||||||
|
/// \pre \li Must not be null.
|
||||||
|
/// \pre \li Must exist.
|
||||||
|
/// \param error_out \see errors.h
|
||||||
|
/// \return The ID of the blueprint or 0 if an error occurs.
|
||||||
|
IKA_API IkarusId ikarus_blueprint_get_id(IkarusBlueprint const * blueprint, IkarusErrorData * error_out);
|
||||||
|
|
||||||
/// \brief Gets the project a blueprint is part of.
|
/// \brief Gets the project a blueprint is part of.
|
||||||
/// \param blueprint The blueprint to get the project of.
|
/// \param blueprint The blueprint to get the project of.
|
||||||
/// \pre \li Must not be null.
|
/// \pre \li Must not be null.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <ikarus/errors.h>
|
#include <ikarus/errors.h>
|
||||||
|
#include <ikarus/id.h>
|
||||||
#include <ikarus/macros.h>
|
#include <ikarus/macros.h>
|
||||||
#include <ikarus/stdtypes.h>
|
#include <ikarus/stdtypes.h>
|
||||||
|
|
||||||
|
|
@ -54,6 +55,14 @@ IKA_API IkarusEntity * ikarus_entity_create(struct IkarusProject * project, char
|
||||||
/// \remark The entity must not be accessed after deletion.
|
/// \remark The entity must not be accessed after deletion.
|
||||||
IKA_API void ikarus_entity_delete(IkarusEntity * entity, IkarusErrorData * error_out);
|
IKA_API void ikarus_entity_delete(IkarusEntity * entity, IkarusErrorData * error_out);
|
||||||
|
|
||||||
|
/// \brief Gets the ID of an entity.
|
||||||
|
/// \param entity The entity to get the ID of.
|
||||||
|
/// \pre \li Must not be null.
|
||||||
|
/// \pre \li Must exist.
|
||||||
|
/// \param error_out \see errors.h
|
||||||
|
/// \return The ID of the entity or 0 if an error occurs.
|
||||||
|
IKA_API IkarusId ikarus_entity_get_id(IkarusEntity const * entity, IkarusErrorData * error_out);
|
||||||
|
|
||||||
/// \brief Gets the project an entity is part of.
|
/// \brief Gets the project an entity is part of.
|
||||||
/// \param entity The entity to get the project of.
|
/// \param entity The entity to get the project of.
|
||||||
/// \pre \li Must not be null.
|
/// \pre \li Must not be null.
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
/// \author Folling <folling@ikarus.world>
|
/// \author Folling <folling@ikarus.world>
|
||||||
|
|
||||||
#include <ikarus/errors.h>
|
#include <ikarus/errors.h>
|
||||||
|
#include <ikarus/id.h>
|
||||||
#include <ikarus/macros.h>
|
#include <ikarus/macros.h>
|
||||||
#include <ikarus/objects/properties/property_type.h>
|
#include <ikarus/objects/properties/property_type.h>
|
||||||
#include <ikarus/stdtypes.h>
|
#include <ikarus/stdtypes.h>
|
||||||
|
|
@ -64,6 +65,22 @@ struct IkarusProperty;
|
||||||
/// \remark The property must not be accessed after deletion.
|
/// \remark The property must not be accessed after deletion.
|
||||||
IKA_API void ikarus_property_delete(IkarusProperty * property, IkarusErrorData * error_out);
|
IKA_API void ikarus_property_delete(IkarusProperty * property, IkarusErrorData * error_out);
|
||||||
|
|
||||||
|
/// \brief Gets the ID of a property.
|
||||||
|
/// \param property The property to get the ID of.
|
||||||
|
/// \pre \li Must not be null.
|
||||||
|
/// \pre \li Must exist.
|
||||||
|
/// \param error_out \see errors.h
|
||||||
|
/// \return The ID of the property or 0 if an error occurs.
|
||||||
|
IKA_API IkarusId ikarus_property_get_id(IkarusProperty const * property, IkarusErrorData * error_out);
|
||||||
|
|
||||||
|
/// \brief Gets the project of a property.
|
||||||
|
/// \param property The property to get the project of.
|
||||||
|
/// \pre \li Must not be null.
|
||||||
|
/// \pre \li Must exist.
|
||||||
|
/// \param error_out \see errors.h
|
||||||
|
/// \return The project of the property or null if an error occurs.
|
||||||
|
IKA_API struct IkarusProject * ikarus_property_get_project(IkarusProperty const * property, IkarusErrorData * error_out);
|
||||||
|
|
||||||
/// \brief Gets the type info of a property.
|
/// \brief Gets the type info of a property.
|
||||||
/// \param property The property to get the type info of.
|
/// \param property The property to get the type info of.
|
||||||
/// \pre \li Must not be null.
|
/// \pre \li Must not be null.
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,10 @@ void ikarus_blueprint_delete(IkarusBlueprint * blueprint, IkarusErrorData * erro
|
||||||
blueprint->project->uncache(blueprint);
|
blueprint->project->uncache(blueprint);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IkarusId ikarus_blueprint_get_id(IkarusBlueprint const * blueprint, IkarusErrorData * error_out) {
|
||||||
|
return ikarus::util::object_get_id(blueprint, error_out);
|
||||||
|
}
|
||||||
|
|
||||||
IkarusProject * ikarus_blueprint_get_project(IkarusBlueprint const * blueprint, IkarusErrorData * error_out) {
|
IkarusProject * ikarus_blueprint_get_project(IkarusBlueprint const * blueprint, IkarusErrorData * error_out) {
|
||||||
return ikarus::util::object_get_project(blueprint, error_out);
|
return ikarus::util::object_get_project(blueprint, error_out);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,10 @@ void ikarus_entity_delete(IkarusEntity * entity, IkarusErrorData * error_out) {
|
||||||
entity->project->uncache(entity);
|
entity->project->uncache(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IkarusId ikarus_entity_get_id(IkarusEntity const * entity, IkarusErrorData * error_out) {
|
||||||
|
return ikarus::util::object_get_id(entity, error_out);
|
||||||
|
}
|
||||||
|
|
||||||
IkarusProject * ikarus_entity_get_project(IkarusEntity const * entity, IkarusErrorData * error_out) {
|
IkarusProject * ikarus_entity_get_project(IkarusEntity const * entity, IkarusErrorData * error_out) {
|
||||||
return ikarus::util::object_get_project(entity, error_out);
|
return ikarus::util::object_get_project(entity, error_out);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,10 @@ IKA_API void ikarus_property_delete(IkarusProperty * property, IkarusErrorData *
|
||||||
property->project->uncache(property);
|
property->project->uncache(property);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IkarusId ikarus_property_get_id(IkarusProperty const * property, IkarusErrorData * error_out) {
|
||||||
|
return ikarus::util::object_get_id(property, error_out);
|
||||||
|
}
|
||||||
|
|
||||||
IkarusProject * ikarus_property_get_project(IkarusProperty const * property, IkarusErrorData * error_out) {
|
IkarusProject * ikarus_property_get_project(IkarusProperty const * property, IkarusErrorData * error_out) {
|
||||||
return ikarus::util::object_get_project(property, error_out);
|
return ikarus::util::object_get_project(property, error_out);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,14 @@
|
||||||
|
|
||||||
namespace ikarus::util {
|
namespace ikarus::util {
|
||||||
|
|
||||||
|
template<typename O>
|
||||||
|
[[nodiscard]] IkarusId object_get_id(O const * object, IkarusErrorData * error_out) {
|
||||||
|
IKARUS_FAIL_IF_NULL(object, 0);
|
||||||
|
IKARUS_FAIL_IF_OBJECT_MISSING(object, 0);
|
||||||
|
|
||||||
|
return object->id;
|
||||||
|
}
|
||||||
|
|
||||||
template<typename O>
|
template<typename O>
|
||||||
[[nodiscard]] IkarusProject * object_get_project(O const * object, IkarusErrorData * error_out) {
|
[[nodiscard]] IkarusProject * object_get_project(O const * object, IkarusErrorData * error_out) {
|
||||||
IKARUS_FAIL_IF_NULL(object, nullptr);
|
IKARUS_FAIL_IF_NULL(object, nullptr);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue