Я делаю некоторую Rust FFI работу для API Erlang NIF, и у меня есть эти:Raw указатель типа для интерьера изменчивой структуры
ErlNifEnv *enif_alloc_env();
void enif_free_env(ErlNifEnv* env);
Этот указатель ErlNifEnv получает передается множество других функций, но пользователю никогда не будет обрабатывать указатель. Кроме того, этот указатель не является потокобезопасным (для использования нескольких потоков потребуется мьютекс). Наивный Rust представление этого типа будет ..
struct ErlNifEnv;
*mut ErlNifEnv;
Но, я думаю, что я могу относиться к этому типу, как имеющие «внутреннее переменчивость», который привел бы к ...
struct ErlNifEnv;
*const ErlNifEnv;
Должен ли я это лечение указатель как const, хотя базовый код C видит его как неконстантный?