pumpkin-api-d/example/source/app.d
2026-09-16 22:06:45 -07:00

36 lines
930 B
D

module plugin;
import wit.pumpkin.plugin.plugin;
import wit.common;
import pumpkin.register;
struct MyPlugin {
@GetMetadata PluginMetadata getMetadata()
{
immutable(WitString)[$] authors = [
"You".witList
];
return (immutable PluginMetadata(
name: "pumpkin-plugin-example".witList,
version_: "0.1.0".witList,
authors: authors.witList,
description: "An example plugin in D.".witList,
dependencies: WitList!WitString(),
permissions: WitList!WitString()
)).witClone;
}
@OnLoad
Result!(void, WitString) onLoad(Context ctx)
{
scope (exit)
ctx.witDrop; // incoming resources need to be cleaned up after they are done being used
log(Level.info, "Hello from D!".witList);
return ok!WitString;
}
}
mixin RegisterPlugin!MyPlugin;