10 个版本
使用旧的 Rust 2015
0.1.9 | 2022年5月20日 |
---|---|
0.1.7 | 2022年2月25日 |
0.1.5 | 2021年12月3日 |
0.1.4 | 2021年9月26日 |
0.1.0 | 2018年11月28日 |
#6 in #mutable-borrow
627,230 每月下载
用于 324 个 crate (4 直接)
11KB
111 行
RetainMut
此 crate 已弃用。Rust 1.61 稳定了 retain_mut
用于 Vec
和 VecDeque
,因此您可以直接使用它们。此 crate 已不再维护。
此 crate 提供了 trait RetainMut
,它为 Vec
和 VecDeque
提供了 retain_mut
方法。
retain_mut
基本上与retain
相同,只不过它将项目的可变引用提供给谓词函数。
由于没有理由retain
不能以这种方式设计,因此此 crate基本上只是复制了 std 中的代码,并对提供可变引用进行了少量修改。这些 impl 的代码可以在 crate 的代码注释中找到。
这可能是 Rust 库中的历史错误,即 retain
应从一开始就执行此操作。请参阅 rust-lang/rust#25477。
从 Rust 1.58 开始,std 已添加了一个不稳定的方法 retain_mut
,请参阅 rust-lang/rust#90829。一旦它得到稳定,您可以简单地删除此 crate。
示例
Vec
let mut vec = vec![1, 2, 3, 4];
vec.retain_mut(|x| { *x *= 3; *x % 2 == 0 });
assert_eq!(vec, [6, 12]);
VecDeque
let mut deque = VecDeque::from(vec![1, 2, 3, 4]);
deque.retain_mut(|x| { *x *= 3; *x % 2 == 0 });
assert_eq!(deque, [6, 12]);