improve C header compatibility

This commit is contained in:
Folling 2025-01-05 18:48:24 +01:00
parent 24335a0a1f
commit 9ea02d5cb1
No known key found for this signature in database
9 changed files with 151 additions and 165 deletions

View file

@ -3,13 +3,17 @@
/// \file blueprint.h
/// \author Folling <mail@folling.io>
/// \defgroup blueprints Blueprints
/// \brief Blueprints are templates for entities.
/// @{
#include <ikarus/errors.h>
#include <ikarus/macros.h>
#include <ikarus/stdtypes.h>
/// \defgroup blueprints Blueprints
/// \brief Blueprints are templates for entities.
/// @{
struct IkarusProject;
struct IkarusEntity;
struct IkarusProperty;
IKARUS_BEGIN_HEADER
@ -25,7 +29,7 @@ struct IkarusBlueprint;
/// \pre \li Must not be null.
/// \param error_out \see errors.h
/// \return True if the blueprint exists, false otherwise or if an error occurs.
IKA_API bool ikarus_blueprint_exists(IkarusBlueprint * blueprint, IkarusErrorData * error_out);
IKA_API bool ikarus_blueprint_exists(struct IkarusBlueprint * blueprint, struct IkarusErrorData * error_out);
/// \brief Flags for creating a blueprint.
enum IkarusBlueprintCreateFlags {
@ -44,10 +48,10 @@ enum IkarusBlueprintCreateFlags {
/// \return The created blueprint or null if an error occurs.
/// \param error_out \see errors.h
/// \remark Ownership remains with libikarus.
IKA_API IkarusBlueprint * ikarus_blueprint_create(
IKA_API struct IkarusBlueprint * ikarus_blueprint_create(
struct IkarusProject * project,
char const * name,
IkarusBlueprintCreateFlags flags,
enum IkarusBlueprintCreateFlags flags,
struct IkarusErrorData * error_out
);
@ -68,10 +72,10 @@ enum IkarusBlueprintCreateFromEntityFlags {
/// \param flags Flags for creating the blueprint.
/// \param error_out \see errors.h
/// \return The created blueprint or null if an error occurs.
IKA_API IkarusBlueprint * ikarus_blueprint_create_from_entity(
IKA_API struct IkarusBlueprint * ikarus_blueprint_create_from_entity(
struct IkarusEntity * entity,
char const * name,
IkarusBlueprintCreateFromEntityFlags flags,
enum IkarusBlueprintCreateFromEntityFlags flags,
struct IkarusErrorData * error_out
);
@ -90,7 +94,7 @@ enum IkarusBlueprintCopyFlags {
/// \return The copied blueprint or null if an error occurs.
IKA_API struct IkarusBlueprint * ikarus_blueprint_copy(
struct IkarusBlueprint * blueprint,
IkarusBlueprintCopyFlags flags,
enum IkarusBlueprintCopyFlags flags,
struct IkarusErrorData * error_out
);
@ -109,8 +113,8 @@ enum IkarusBlueprintDeleteFlags {
/// \param error_out \see errors.h
IKA_API void ikarus_blueprint_delete(
struct IkarusBlueprint * blueprint,
IkarusBlueprintDeleteFlags flags,
IkarusErrorData * error_out
enum IkarusBlueprintDeleteFlags flags,
struct IkarusErrorData * error_out
);
/// \brief Gets the project a blueprint belongs to.
@ -150,7 +154,7 @@ enum IkarusBlueprintSetNameFlags {
IKA_API void ikarus_blueprint_set_name(
struct IkarusBlueprint * blueprint,
char const * name,
IkarusBlueprintSetNameFlags flags,
enum IkarusBlueprintSetNameFlags flags,
struct IkarusErrorData * error_out
);