Rust 如何以可变引用作为项返回迭代器特性?

Rust 如何以可变引用作为项返回迭代器特性?,rust,borrow-checker,Rust,Borrow Checker,我试图返回一个迭代器特征,其可变引用为项。我不明白为什么我会有这个编译器错误 无法为函数调用中的生存期参数推断出适当的生存期,因为存在冲突的要求,并且对于此代码,预期和mut T T、found和mut T: pub fn iter_mut(&mut self)->impl迭代器{ 自我控制 .iter_mut() .filter(| h | h.is_dirty==false) .map(移动| h |&多个self.data[h.value]) } 此外,它的不可变版本运行良好,没有任何编

我试图返回一个
迭代器
特征,其可变引用为
。我不明白为什么我会有这个编译器错误
无法为函数调用中的生存期参数推断出适当的生存期,因为存在冲突的要求
,并且对于此代码,
预期和mut T T、found和mut T

pub fn iter_mut(&mut self)->impl迭代器{
自我控制
.iter_mut()
.filter(| h | h.is_dirty==false)
.map(移动| h |&多个self.data[h.value])
}
此外,它的不可变版本运行良好,没有任何编译器错误:

pub-fn-iter(&self)->impl迭代器{
自我控制
.国际热核实验堆(iter)
.filter(| h | h.is_dirty==false)
.map(移动| h |和self.data[h.value])
}
我试图用一些生命周期来澄清编译器,但我一直有这个错误

我在这里设置了一个游乐场(L138)。

此外,我还尝试自己实现
iter\u mut()
方法,但没有成功。同一个错误,即使我绕过了这个错误,
句柄
的作用域是有限的,因此生命周期将不会发生


pub fn iter_mut(&mut self)->itermuti如果要编译,并且
self.handles
包含两次相同的索引,则可以使用此迭代器获取对相同元素的两个
&mut
引用。如果要编译,并且
self.handles
包含两次相同的索引,可以使用此迭代器获取对同一元素的两个
&mut
引用。