3 ms·
That's right, unsafety extends to the whole module, and anything else that relies on the module's internal implementation. Generally all the way up to the abstr
by whytevuhuni 2y ago
That's right, unsafety extends to the whole module, and anything else that relies on the module's internal implementation. Generally all the way up to the abstraction's public API, whatever that abstraction is (a Vec, a Mutex, etc).
But it's nevertheless still not different from other languages that are deemed memory safe.
- kobebrookskC3 2y agomodules are meant to be the boundary for a safe abstraction, but sometimes you get fun holes like https://github.com/rust-lang/rust/issues/128872 https://github.com/rust-lang/rust/issues/128872 where you can implement Copy for a type in a different module in the same crate, even if the fields are private
- whytevuhuni 2y agoI'll admit, that's a pretty funny bug. Thankfully it seems like the Rust devs are pretty keen on fixing it somehow.