3 个不稳定版本
使用旧的 Rust 2015
0.2.0 | 2018年5月25日 |
---|---|
0.1.1 | 2018年1月14日 |
0.1.0 | 2018年1月12日 |
#15 在 #assert-eq
被用于 irc-bot
17KB
297 行
rando
一个用于随机顺序迭代的 Rust 库。
本软件采用 Apache 许可证,版本 2.0 许可。
构建
大多数用户应使用 Rust 的构建工具 Cargo 来构建此软件
$ cargo build
$ cargo check
$ cargo test
$ # Etc.
Linux 发行版 NixOS 的用户可能更喜欢使用提供的 Makefile
,它封装了工具 nix-shell
$ make build
$ make check
$ make test
$ # Etc.
lib.rs
:
一个随机顺序迭代的库。
对于一些常见的集合类型,该库实现了一个 trait Rando
,该 trait 提供了一个方法 rand_iter
,可以调用该方法创建一个 RandIter
,这是一个用于在随机顺序上遍历集合的迭代器类型。
示例
use rand::EntropyRng;
use rand::SeedableRng;
use rand::StdRng;
use rando::Rando;
use rando::assert_eq_up_to_order;
assert_eq_up_to_order(&[1, 2, 3], [1, 2, 3].rand_iter());
assert_eq_up_to_order(&['a', 'b', 'c'], ['c', 'a', 'b'].rand_iter());
let primes = [2, 3, 5, 7, 11];
let mut p2 = Vec::new();
primes.rand_iter().for_each(|n| p2.push(n));
assert_eq_up_to_order(&primes, p2);
// These random number generators have the same seeds...
let rng_1 = StdRng::from_rng(EntropyRng::new())?;
let rng_2 = rng_1.clone();
// ...so `RandIter`s using them should iterate in the same order.
assert_eq!(
primes.rand_iter().with_rng(rng_1).collect::<Vec<_>>(),
primes.rand_iter().with_rng(rng_2).collect::<Vec<_>>()
);
依赖项
~575KB