5个版本 (3个破坏性更新)
使用旧的Rust 2015
0.5.0 | 2018年9月24日 |
---|---|
0.3.1 | 2017年8月23日 |
0.3.0 | 2017年7月30日 |
0.2.0 | 2016年11月21日 |
0.1.0 | 2016年5月2日 |
#100 in #rand
每月574次下载
在 8 crate 中使用
7KB
91 行
rand_derive
#[derive(Rand)]
功能允许采样随机实例。
自rand 0.5起,此crate已废弃,因为Rand
特质已被废弃,并且它似乎用途很少。
此crate已更新以与Rand 0.5兼容,但是请注意,它现在实现的是Distribution<Self> for Standard
而不是Rand
。
用法
将此添加到您的 Cargo.toml
[dependencies]
rand = "0.5"
rand_derive = "0.5"
并在此crate根目录下添加此内容
extern crate rand;
#[macro_use]
extern crate rand_derive;
示例
#[derive(Rand)]
可以用于任何所有字段/变体都实现了 rand::Rand
的结构体或枚举。
#[derive(Debug, Rand)]
struct Foo {
x: u16,
y: Option<f64>,
}
#[derive(Debug, Rand)]
enum Bar {
X{x: u8, y: isize},
Y([bool; 4]),
Z,
}
现在您可以在自定义类型上调用 Rng::gen()
函数。
use rand::Rng;
let mut rng = rand::thread_rng();
println!("{:?}", rng.gen::<Foo>());
println!("{:?}", rng.gen::<Bar>());
依赖项
~1.5MB
~41K SLoC