Crate random_number

Expand description

Random Number

Generate random numbers quickly.

The `random!` Marco

``````use random_number::random;

let n: u8 = random!();
println!("{}", n); // 0 ~ 255

let n: f64 = random!();
println!("{}", n); // 0.0 ~ 1.0

let n: u8 = random!(..=10);
println!("{}", n); // 0 ~ 10

let n: u8 = random!(..=9);
println!("{}", n); // 0 ~ 9

let n: u8 = random!(10..);
println!("{}", n); // 10 ~ 255

let n: i8 = random!(-2..=12);
println!("{}", n); // -2 ~ 12

let n: u8 = random!(12, 20);
println!("{}", n); // 12 ~ 20

let n: u8 = random!(20, 12);
println!("{}", n); // 12 ~ 20``````

The random number generator can be reused by adding it to the `random!` macro as the last argument.

``````use random_number::random;

let mut rng = random_number::rand::thread_rng();

let n: u8 = random!(rng);
println!("{}", n); // 0 ~ 255

let n: u8 = random!(..=10, rng);
println!("{}", n); // 0 ~ 10

let n: u8 = random!(20, 12, rng);
println!("{}", n); // 12 ~ 20``````

The `random_ranged` Function

If the range is not literal, for example, a variable, `var_range`, storing an instance that implements the `RangeBounds` trait, the `var_range` variable cannot be used in the `random!` macro.

``````let var_range = 1..=10;

let n: u8 = random_number::random!(var_range); // compile error``````

In this case, use the `random_ranged` function instead.

``````let var_range = 1..=10;

let n: u8 = random_number::random_ranged(var_range);
println!("{}", n); // 1 ~ 10``````

The `random_fill!` Marco

The `random_fill!` marco can be used to fill a slice with random numbers. The usage is like the `random!` macro. Just add a slice as the first argument when using the `random_fill!` macro.

``````let mut a = [0i8; 32];
random_number::random_fill!(a, -2..=12);

println!("{:?}", a);``````

The `random_fill_ranged` Function

``````let var_range = 1..=10;

let mut a = [0u8; 32];
random_number::random_fill_ranged(&mut a, var_range);

println!("{:?}", a);``````

Re-exports

`pub extern crate rand;`

Macros

Generate a random number.

Generate random numbers.

Traits

The random range of different types.

Functions

Generate a random value in the range of the output type with a new lazily-initialized thread-local random number generator.

Generate a random value in the range [`min`, `Bounded::max_value()`] with a new lazily-initialized thread-local random number generator.

Generate a random value in the range [`min`, `X::max_value()`] with an existing random number generator.

Generate a random value in the range [`X::min_value()`, `max_inclusive`] with a new lazily-initialized thread-local random number generator.

Generate a random value in the range [`X::min_value()`, `max_exclusive`) with a new lazily-initialized thread-local random number generator.

Generate a random value in the range [`X::min_value()`, `max_exclusive`) with an existing random number generator.

Generate a random value in the range [`X::min_value()`, `max_inclusive`] with an existing random number generator.

Generate a random value in the range [`min`, `max_exclusive`) with a new lazily-initialized thread-local random number generator.

Generate a random value in the range [`min`, `max_exclusive`) with an existing random number generator.

Generate random values in the range of the output type with a new lazily-initialized thread-local random number generator.

Generate random values in the range [`min`, `Bounded::max_value()`] with a new lazily-initialized thread-local random number generator.

Generate random values in the range [`min`, `X::max_value()`] with an existing random number generator.

Generate random values in the range [`X::min_value()`, `max_inclusive`] with a new lazily-initialized thread-local random number generator.

Generate random values in the range [`X::min_value()`, `max_exclusive`) with a new lazily-initialized thread-local random number generator.

Generate random values in the range [`X::min_value()`, `max_exclusive`) with an existing random number generator.

Generate random values in the range [`X::min_value()`, `max_inclusive`] with an existing random number generator.

Generate random values in the range [`min`, `max_exclusive`) with a new lazily-initialized thread-local random number generator.

Generate random values in the range [`min`, `max_exclusive`) with an existing random number generator.

Generate random values in the range [`min`, `max_inclusive`] with a new lazily-initialized thread-local random number generator.

Generate random values in the range [`a`, `b`] or [`b`, `a`] with a new lazily-initialized thread-local random number generator.

Generate random values in the range [`a`, `b`] or [`b`, `a`] with an existing random number generator.

Generate random values in the range [`min`, `max_inclusive`] with an existing random number generator.

Generate random values in a specific range with a new lazily-initialized thread-local random number generator.

Generate random values in a specific range with an existing random number generator.

Generate random values in the range of the output type with an existing random number generator.

Generate a random value in the range [`min`, `max_inclusive`] with a new lazily-initialized thread-local random number generator.

Generate a random value in the range [`a`, `b`] or [`b`, `a`] with a new lazily-initialized thread-local random number generator.

Generate a random value in the range [`a`, `b`] or [`b`, `a`] with an existing random number generator.

Generate a random value in the range [`min`, `max_inclusive`] with an existing random number generator.

Generate a random value in a specific range with a new lazily-initialized thread-local random number generator.

Generate a random value in a specific range with an existing random number generator.

Generate a random value in the range of the output type with an existing random number generator.