1 个稳定版本
1.0.0 | 2024 年 5 月 27 日 |
---|
682 在 数据结构
每月 105 次下载
28KB
442 行
vec-entries
迭代和从 Vec
中删除元素的 Entry API。
描述
有时您想以比 Vec::dedup_by
、Vec::retain
或 Vec::drain
更复杂的方式有效地删除和修改 Vec
的元素。这个 crate 旨在提供类似但更广泛的功能。
使用
只需导入扩展特质并调用新方法。 EntriesExt::entries
允许遍历元素、修改、删除和按需重新插入。像 Vec::dedup_by
,这是通过传递一个函数来完成的,该函数接收一个 Entries
对象并返回任何内容。
use vec_entries::EntriesExt;
let mut v = vec![1, 2, 3];
let c = v.entries(.., |e| {
let a = e.remove().unwrap(); // Remove the `1`
let b = e.remove_back().unwrap(); // Remove the `3`
e.try_insert_outside(0); // Insert a `0` where we removed the `1`
a + b
});
assert_eq!(c, 4);
assert_eq!(v, [0, 2]);
许可证
许可下
- MIT 许可证 (LICENSE 或 https://opensource.org/licenses/MIT)