Not that you're incorrect but to be even more precise, and for the readers who do not know about Rust, I would say "voiding *parts* of Rust's safety contract".
Citing the documentation:
> To switch to unsafe Rust, use the unsafe keyword and then start a new block that holds the unsafe code. You can take five actions in unsafe Rust, called unsafe superpowers, that you can’t in safe Rust. [...]:
> - Dereference a raw pointer
> - Call an unsafe function or method
> - Access or modify a mutable static variable
> - Implement an unsafe trait
> - Access fields of unions
> It’s important to understand that unsafe doesn’t turn off the borrow checker or disable any other of Rust’s safety checks
https://doc.rust-lang.org/book/ch19-01-unsafe-rust.html#unsa...