Rust Allocators and Memory Management