How can I simultaneously iterate over a Rust HashMap and modify some of its values?
I'm trying Advent of Code in Rust this year, as a way of learning the language. I've parsed the input (from day 7) into the following structure: struct Process { name: String, weight: u32, children: Vec<String>, parent: Option<String> } These are stored in a HashMap<String, Process> . Now I want to iterate over the values in the map and update the parent values, based on what I find in the parent's "children" vector. What doesn't work is for p in self.processes.values() { for child_name in p.children { let mut child = self.processes.get_mut(child_name).expect("Child not found."); child.parent