| ▲ | greiskul 3 hours ago | |||||||
And even if you do end up writing an unsafe block, that should be a massive flag that the code in said block should deserve extra comments on why it is safe, and extra unit tests on verifying that it does not blow up. How do you know the unsafe operation is safe? What are the preconditions the code block has? Write it down, review it, test it. | ||||||||
| ▲ | saghm 2 hours ago | parent [-] | |||||||
Exactly; I feel like a lot of people seem to misunderstand what Rust is trying to solve. It's fundamentally not trying to make unsafe code impossible; it's making the number of places you need to audit it a tiny fraction of your codebase compared to needing to audit the entirety of a C or C++ codebase. When I'm doing code reviews, you'd better believe I'm going to spend some extra time on any unsafe block I see to figure out if it's necessary and if so, if it's actually safe safe (with the default assumption for both of those being that they're not until I can convince myself otherwise). | ||||||||
| ||||||||