pumpkin-api-c/pumpkin_api.h
Demetrius Kanios 0b81199965 Reformat
2026-09-04 21:56:56 -07:00

46 lines
957 B
C

#ifndef PUMPKIN_API_H
#define PUMPKIN_API_H
#include "plugin.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct {
const char *name;
const char *version;
const char **authors;
size_t authors_count;
const char *description;
const char **dependencies;
size_t dependencies_count;
const char **permissions;
size_t permissions_count;
} pumpkin_metadata_t;
typedef void (*pumpkin_on_load_t)(plugin_own_context_t ctx);
typedef void (*pumpkin_on_unload_t)(plugin_own_context_t ctx);
typedef pumpkin_metadata_t (*pumpkin_get_metadata_t)(void);
typedef struct {
pumpkin_get_metadata_t get_metadata;
pumpkin_on_load_t on_load;
pumpkin_on_unload_t on_unload;
} pumpkin_plugin_t;
void pumpkin_register_plugin(pumpkin_plugin_t plugin);
#define REGISTER_PUMPKIN_PLUGIN(plugin) \
void exports_plugin_init_plugin(void) { pumpkin_register_plugin(plugin); }
#ifdef __cplusplus
}
#endif
#endif