//! Trait for extending `HashMap` with `get_or_default`. use std::collections::HashMap; use std::hash::Hash; pub(crate) trait MapWithDefault { fn get_or_default(&mut self, k: K) -> &mut V; } impl MapWithDefault for HashMap { fn get_or_default(&mut self, k: K) -> &mut V { self.entry(k).or_insert_with(V::default) } } #[test] fn test_default() { let mut hash_map = HashMap::new(); hash_map.insert(42, "hello"); assert_eq!(*hash_map.get_or_default(43), ""); }