Как избежать неопределенного поведения с русифицированными перечислениями в bindgen?

В bindgen есть опция, которая позволяет генерировать перечисления Rust (вместо констант) из перечислений C. Однако в документации указано, что он способен генерировать код, вызывающий неопределенное поведение при определенных обстоятельствах:

Используйте это с осторожностью, создание этого в небезопасном коде (включая FFI) с недопустимым значением вызовет неопределенное поведение. Вместо этого вы можете использовать стиль перечисления newtype.

На что именно мне следует обратить внимание, чтобы этого избежать? Означает ли «создание этого в небезопасном коде», что build.rsбез небезопасного кода поймает эти ситуации? Смысл приведенной выше цитаты мне неясен.

0 ответов

Другие вопросы по тегам