expose id getters
Signed-off-by: Folling <mail@folling.io>
This commit is contained in:
parent
43482aa2bc
commit
e0d1d8bb6f
7 changed files with 55 additions and 0 deletions
|
|
@ -4,6 +4,7 @@
|
|||
/// \author Folling <folling@ikarus.world>
|
||||
|
||||
#include <ikarus/errors.h>
|
||||
#include <ikarus/id.h>
|
||||
#include <ikarus/macros.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.
|
||||
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.
|
||||
/// \param blueprint The blueprint to get the project of.
|
||||
/// \pre \li Must not be null.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#pragma once
|
||||
|
||||
#include <ikarus/errors.h>
|
||||
#include <ikarus/id.h>
|
||||
#include <ikarus/macros.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.
|
||||
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.
|
||||
/// \param entity The entity to get the project of.
|
||||
/// \pre \li Must not be null.
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
/// \author Folling <folling@ikarus.world>
|
||||
|
||||
#include <ikarus/errors.h>
|
||||
#include <ikarus/id.h>
|
||||
#include <ikarus/macros.h>
|
||||
#include <ikarus/objects/properties/property_type.h>
|
||||
#include <ikarus/stdtypes.h>
|
||||
|
|
@ -64,6 +65,22 @@ struct IkarusProperty;
|
|||
/// \remark The property must not be accessed after deletion.
|
||||
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.
|
||||
/// \param property The property to get the type info of.
|
||||
/// \pre \li Must not be null.
|
||||
|
|
|
|||
|
|
@ -49,6 +49,10 @@ void ikarus_blueprint_delete(IkarusBlueprint * blueprint, IkarusErrorData * erro
|
|||
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) {
|
||||
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);
|
||||
}
|
||||
|
||||
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) {
|
||||
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);
|
||||
}
|
||||
|
||||
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) {
|
||||
return ikarus::util::object_get_project(property, error_out);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,14 @@
|
|||
|
||||
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>
|
||||
[[nodiscard]] IkarusProject * object_get_project(O const * object, IkarusErrorData * error_out) {
|
||||
IKARUS_FAIL_IF_NULL(object, nullptr);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue