A deep dive into Rust and C memory interoperability