rusterlium/erlang_nif-sys

ErlNifEnv should be an empty type

nox opened this issue · 3 comments

nox commented

It is supposed to be opaque. It should at least be of size 0.

The dummy member is not pub; where are you seeing it not be opaque?

  1. The dummy pointer member disables Send and Sync. There are other ways in unstable Rust.

  2. Also at the time of writing I recall an error or warning for empty structs. The recommended alternative was to use an empty enum, but I didn't like the way ErlNifEnv listed an enum in the docs, so stuck with struct. I suspect this may have changed in current Rust.

When both points above can be resolved in stable Rust I'll happily make the struct size 0.

what the status of this?

Unless there's some concrete issue with the current implementation this should be closed.