Crates.io | rand_derive |
lib.rs | rand_derive |
version | 0.5.0 |
source | src |
created_at | 2016-05-02 20:36:57.168714 |
updated_at | 2018-09-24 11:21:08.222501 |
description | `#[derive(Rand)]` macro (deprecated). |
homepage | https://github.com/rust-random/rand/tree/rand_derive/rand-derive |
repository | https://github.com/rust-random/rand |
max_upload_size | |
id | 4956 |
size | 7,638 |
#[derive(Rand)]
functionality enabling sampling of random instances.
This crate is deprecated as of rand 0.5 since the Rand
trait has been
deprecated and since it appears to have very little use.
This crate has been updated to work with Rand 0.5, however note that it now
implements Distribution<Self> for Standard
instead of Rand
.
Add this to your Cargo.toml
:
[dependencies]
rand = "0.5"
rand_derive = "0.5"
and this to your crate root:
extern crate rand;
#[macro_use]
extern crate rand_derive;
#[derive(Rand)]
can be used on any struct
or enum
where all fields/variants implement 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,
}
Now you can call the Rng::gen()
function on your custom types.
use rand::Rng;
let mut rng = rand::thread_rng();
println!("{:?}", rng.gen::<Foo>());
println!("{:?}", rng.gen::<Bar>());