pumpkin-api-c/pumpkin_api.h
Demetrius Kanios 9a5e0b0f87 Fix everything
2026-07-20 22:37:34 -07:00

48 lines
960 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