unsafe кода.unsafe fn - сразу пишу как не получить с ней UB.unsafe {} - почему тут не будет UB. Для этого есть clippy lint clippy::undocumented_unsafe_blocks. Также всегда советую делать #![forbid(unsafe_op_in_unsafe_fn)] если нету #![forbid(unsafe)].Но есть один случай, когда приходится писать
// SAFETY: Practically safe, but generally nope.
unsafe { ... }
И ничего тут не поделаешь. Можно сколько угодно протаскивать
unsafe наверх, хоть до main, но там придется сделать вот такой unsafe блок.Что ж это за жестокая ирония и когда крабам приходится идти на трюки и соглашаться на "безопасно на практике" вместо полной гарантии безопасности?
Первый написавший правильный ответ в комментарии к посту заслужит почет и уважение.