Crate random_number

Source
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§

random
Generate a random number.
random_fill
Generate random numbers.

Traits§

Bounded
The random range of different types.

Functions§

random
Generate a random value in the range of the output type with a new lazily-initialized thread-local random number generator.
random_at_least
Generate a random value in the range [min, Bounded::max_value()] with a new lazily-initialized thread-local random number generator.
random_at_least_with_rng
Generate a random value in the range [min, X::max_value()] with an existing random number generator.
random_at_most
Generate a random value in the range [X::min_value(), max_inclusive] with a new lazily-initialized thread-local random number generator.
random_at_most_exclusively
Generate a random value in the range [X::min_value(), max_exclusive) with a new lazily-initialized thread-local random number generator.
random_at_most_exclusively_with_rng
Generate a random value in the range [X::min_value(), max_exclusive) with an existing random number generator.
random_at_most_with_rng
Generate a random value in the range [X::min_value(), max_inclusive] with an existing random number generator.
random_exclusively
Generate a random value in the range [min, max_exclusive) with a new lazily-initialized thread-local random number generator.
random_exclusively_with_rng
Generate a random value in the range [min, max_exclusive) with an existing random number generator.
random_fill
Generate random values in the range of the output type with a new lazily-initialized thread-local random number generator.
random_fill_at_least
Generate random values in the range [min, Bounded::max_value()] with a new lazily-initialized thread-local random number generator.
random_fill_at_least_with_rng
Generate random values in the range [min, X::max_value()] with an existing random number generator.
random_fill_at_most
Generate random values in the range [X::min_value(), max_inclusive] with a new lazily-initialized thread-local random number generator.
random_fill_at_most_exclusively
Generate random values in the range [X::min_value(), max_exclusive) with a new lazily-initialized thread-local random number generator.
random_fill_at_most_exclusively_with_rng
Generate random values in the range [X::min_value(), max_exclusive) with an existing random number generator.
random_fill_at_most_with_rng
Generate random values in the range [X::min_value(), max_inclusive] with an existing random number generator.
random_fill_exclusively
Generate random values in the range [min, max_exclusive) with a new lazily-initialized thread-local random number generator.
random_fill_exclusively_with_rng
Generate random values in the range [min, max_exclusive) with an existing random number generator.
random_fill_inclusively
Generate random values in the range [min, max_inclusive] with a new lazily-initialized thread-local random number generator.
random_fill_inclusively_cmp
Generate random values in the range [a, b] or [b, a] with a new lazily-initialized thread-local random number generator.
random_fill_inclusively_cmp_with_rng
Generate random values in the range [a, b] or [b, a] with an existing random number generator.
random_fill_inclusively_with_rng
Generate random values in the range [min, max_inclusive] with an existing random number generator.
random_fill_ranged
Generate random values in a specific range with a new lazily-initialized thread-local random number generator.
random_fill_ranged_with_rng
Generate random values in a specific range with an existing random number generator.
random_fill_with_rng
Generate random values in the range of the output type with an existing random number generator.
random_inclusively
Generate a random value in the range [min, max_inclusive] with a new lazily-initialized thread-local random number generator.
random_inclusively_cmp
Generate a random value in the range [a, b] or [b, a] with a new lazily-initialized thread-local random number generator.
random_inclusively_cmp_with_rng
Generate a random value in the range [a, b] or [b, a] with an existing random number generator.
random_inclusively_with_rng
Generate a random value in the range [min, max_inclusive] with an existing random number generator.
random_ranged
Generate a random value in a specific range with a new lazily-initialized thread-local random number generator.
random_ranged_with_rng
Generate a random value in a specific range with an existing random number generator.
random_with_rng
Generate a random value in the range of the output type with an existing random number generator.