fastrand
A simple and fast random number generator.
The implementation uses Wyrand, a simple and fast generator but not cryptographically secure.
Examples
Flip a coin:
if bool else
Generate a random i32:
let num = i32;
Choose a random element in an array:
let v = vec!;
let i = usize;
let elem = v;
Sample values from an array with O(n) complexity (n is the length of array):
choose_multiple;
choose_multiple;
Shuffle an array:
let mut v = vec!;
shuffle;
Generate a random Vec or String:
use repeat_with;
let v: = repeat_with.take.collect;
let s: String = repeat_with.take.collect;
To get reproducible results on every run, initialize the generator with a seed:
// Pick an arbitrary number as seed.
seed;
// Now this prints the same number on every run:
println!;
To be more efficient, create a new Rng instance instead of using the thread-local
generator:
use repeat_with;
let rng = new;
let mut bytes: = repeat_with.take.collect;
Features
std(enabled by default): Enables thestdlibrary. This is required for the global generator and global entropy. Without this feature, [Rng] can only be instantiated using thewith_seedmethod.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.