TBH, I think the way Rust does fn
is a mistake.
If extern type
had existed in the pre-1.0 days, I suspect that instead of fn(A) -> B
we'd have had the equivalent of that be &'static fn(A) -> B
. That would be nice for dlopen
kinds of things too, since it would allow &'a fn
too.
But as it is right now, just call fn
a "function reference" instead of a "function pointer" and you'll be good to go. After all, they behave like references -- safe to call, can't be null, unsafe to create from bits -- not like pointers -- which are unsafe to call and safe to create from bits.