const erl = @cImport({ @cInclude("erl_nif.h"); }); pub export fn hello(env: ?*erl.ErlNifEnv, argc: c_int, argv: [*c]const erl.ERL_NIF_TERM) erl.ERL_NIF_TERM{ _ = argv; _ = argc; //const ERL_NIF_LATIN1 = @as(c_uint, 1); return erl.enif_make_string(env, "Hello world!", 1); // ERL_NIF_LATIN1); } const nif_funcs = [_]erl.ErlNifFunc{ .{ .name = "hello", .arity = 0, .fptr = hello, .flags = 0, }, }; export fn nif_init() ?*erl.ErlNifEntry{ return &nif_entry; } var nif_entry: erl.ErlNifEntry = .{ .major = 2, .minor = 16, .name = "niftest", .num_of_funcs = nif_funcs.len, .funcs = @constCast(&nif_funcs), .load = null, .reload = null, .upgrade = null, .unload = null, .vm_variant = "beam.vanilla", .options = 1, // 0, .sizeof_ErlNifResourceTypeInit = @sizeOf(erl.ErlNifResourceTypeInit), .min_erts = "erts-12.0", // .entry_version = 3, };