We can use the unsafe functions like this use std::collections::HashMap; fn main() { let map = HashMap::new(); let mut map = explain("empty", map); map.insert(String::from("a"), 1); explain("added 1", map); } fn explain<K, V>(name: &str, map: HashMap<K, V>) -> HashMap<K, V> { let arr: [usize; 6] = unsafe { std::mem::transmute(map) }; println!("{}: bucket mask 0x{:x}, ctrl 0x{:x}, growth_left: {}, items: {}", name, arr[2], arr[3], arr[4], arr[5]); unsafe{ std::mem::transmute(arr) } }
Rust - unsafe
Rust - unsafe
Rust - unsafe
We can use the unsafe functions like this use std::collections::HashMap; fn main() { let map = HashMap::new(); let mut map = explain("empty", map); map.insert(String::from("a"), 1); explain("added 1", map); } fn explain<K, V>(name: &str, map: HashMap<K, V>) -> HashMap<K, V> { let arr: [usize; 6] = unsafe { std::mem::transmute(map) }; println!("{}: bucket mask 0x{:x}, ctrl 0x{:x}, growth_left: {}, items: {}", name, arr[2], arr[3], arr[4], arr[5]); unsafe{ std::mem::transmute(arr) } }