我有一个结构体,其中包含一个类型为HashMap
的属性。我想为这个结构体实现IntoIterator
特质,以便可以迭代它的HashMap
属性。但问题是我遇到了生命周期方面的麻烦:
pub struct ProcessList {
map: HashMap<ProcessPtr, usize>,
}
impl ProcessList {
pub fn new() -> ProcessList {
ProcessList {
map: HashMap::new(),
}
}
pub fn add(self, process: ProcessPtr, nb: usize) {
match self.map.contain_key(process) {
true => self.map[process] += nb,
false => self.map.insert(process, nb),
};
}
}
impl<'a> IntoIterator for ProcessList {
type Item = (&'a ProcessPtr, &'a usize);
type IntoIter = Iter<'a, ProcessPtr, usize>;
fn into_iter(self) -> Self::IntoIter {
self.map.into_iter()
}
}