4 个版本 (稳定)
3.0.1-alpha-2 |
|
---|---|
3.0.1-alpha |
|
3.0.0 | 2022年3月21日 |
3.0.0-alpha |
|
0.2.2 | 2021年11月14日 |
#2083 在 Rust 模式
每月 25 次下载
55KB
1K SLoC
select_indices
select_indices
是一个提供用于遍历切片的迭代器的 crate,它使用预先准备的索引列表。它可以简化代码的可读性,并在某些情况下提高性能。
use select_indices::prelude::*;
fn main()
{
struct BankAccount {
pub name: String,
pub balance: f32,
}
let mut vec: Vec<BankAccount> = vec![
BankAccount { name: "Joey Bag o' Donuts".to_string(), balance: 4.27 },
BankAccount { name: "Henry Howard Roosevelt".to_string(), balance: 83.20 },
BankAccount { name: "Jenny Jenson".to_string(), balance: 54.32 },
BankAccount { name: "The Dude".to_string(), balance: -134.01 },
// Assume there's like 300 of these
];
vec.select_indices_mut(&[1, 3]).for_each(|account| {
account.balance -= 20.00;
println!("{} now has ${}", account.name, account.balance);
});
}
还有一个 rayon
功能标志,它提供 select_indices
迭代器的 ParallelIterator 版本。在某些情况下,这些迭代器可以大大提高切片遍历的性能。
依赖关系
~5–550KB
~11K SLoC