const std = @import("std");
const core = @import("core.zig");

const Self = @This();

export const MODULE = core.module(Self);

pub fn startup(alloc: std.mem.Allocator) !*Self {
    std.log.debug("!! startup {s} !!", .{@typeName(@This())});
    return try alloc.create(Self);
}

pub fn unload(_: *Self, _: std.mem.Allocator) ![]u8 {
    std.log.debug("!! unload {s} !!", .{@typeName(@This())});
    return &.{};
}

pub fn reload(_: *Self, _: std.mem.Allocator, _: []u8) !void {
    std.log.debug("!! reload {s} !!", .{@typeName(@This())});
}

pub fn shutdown(self: *Self, alloc: std.mem.Allocator) void {
    std.log.debug("!! shutdown {s} !!", .{@typeName(@This())});
    alloc.destroy(self);
}
