Current section
Files
Jump to
Current section
Files
lib/zig/templates/on_unload.zig.eex
// TODO: deprecate this content being an elixir template and provide it entirely
// using Zig comptime logic.
fn unload(env: beam.env, priv_data: ?*anyopaque) callconv(.c) void {
beam.context.env = env;
beam.context.mode = .callback;
beam.context.allocator = beam.allocator;
beam.context.io = beam.io.get(beam.allocator);
<%= case @on_unload do %>
<% %{name: name, arity: 1} -> %>
nif.<%= name %>(@ptrCast(@alignCast(priv_data)));
<% %{name: name, arity: 2} -> %>
nif.<%= name %>(env, priv_data);
<% end %>
beam.io.deinitGlobal();
}