niftest.zig 904 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. const erl = @cImport({
  2. @cInclude("erl_nif.h");
  3. });
  4. pub export fn hello(env: ?*erl.ErlNifEnv, argc: c_int, argv: [*c]const erl.ERL_NIF_TERM) erl.ERL_NIF_TERM{
  5. _ = argv;
  6. _ = argc;
  7. //const ERL_NIF_LATIN1 = @as(c_uint, 1);
  8. return erl.enif_make_string(env, "Hello world!", 1); // ERL_NIF_LATIN1);
  9. }
  10. const nif_funcs = [_]erl.ErlNifFunc{
  11. .{
  12. .name = "hello",
  13. .arity = 0,
  14. .fptr = hello,
  15. .flags = 0,
  16. },
  17. };
  18. export fn nif_init() ?*erl.ErlNifEntry{
  19. return &nif_entry;
  20. }
  21. var nif_entry: erl.ErlNifEntry = .{
  22. .major = 2,
  23. .minor = 16,
  24. .name = "niftest",
  25. .num_of_funcs = nif_funcs.len,
  26. .funcs = @constCast(&nif_funcs),
  27. .load = null,
  28. .reload = null,
  29. .upgrade = null,
  30. .unload = null,
  31. .vm_variant = "beam.vanilla",
  32. .options = 1, // 0,
  33. .sizeof_ErlNifResourceTypeInit = @sizeOf(erl.ErlNifResourceTypeInit),
  34. .min_erts = "erts-12.0", // .entry_version = 3,
  35. };