| //@ run-pass | |
| use std::collections::HashMap; | |
| fn process_or_insert_default(map: &mut HashMap<usize, String>, key: usize) { | |
| match map.get_mut(&key) { | |
| Some(value) => { | |
| process(value); | |
| } | |
| None => { | |
| map.insert(key, "".to_string()); | |
| } | |
| } | |
| } | |
| fn process(x: &str) { | |
| assert_eq!(x, "Hello, world"); | |
| } | |
| fn main() { | |
| let map = &mut HashMap::new(); | |
| map.insert(22, format!("Hello, world")); | |
| map.insert(44, format!("Goodbye, world")); | |
| process_or_insert_default(map, 22); | |
| process_or_insert_default(map, 66); | |
| assert_eq!(map[&66], ""); | |
| } |