我的代码看起来像这样:
struct Bar {
i: i32,
}
struct Foo {
v: Vec<Bar>,
}
impl Foo {
fn foo(&mut self) {
self.v.drain(self.v.iter().filter(|b| b.i < 10));
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,Bar不允许复制或克隆.
我想删除所有Bar不满足该条件的s.最初我以为我可以迭代它们并调用remove但是我不允许有两个可变借用或一个可变借用,如果存在一个完全有意义的不可变借用.
我想最简单的事情是只clone,filter和collect,但我不能克隆或复制.
我该怎么做?
rust ×1