Unsafe in Rust can be applied to functions, and Rust references can be converted to raw pointers in unsafe code. The comparison of opt-in vs opt-out is valid.