Crate spinoso_random[−][src]
An implementation of Ruby’s pseudo-random number generator, or PRNG.
The PRNG produces a deterministic sequence of bits which approximate true randomness. The sequence may be represented by integers, floats, or binary strings.
The generator may be initialized with either a system-generated or user-supplied seed value.
PRNGs are currently implemented as a modified Mersenne Twister with a period of 2**19937-1.
Implementation notes
This RNG reproduces the same random bytes and floats as MRI. It may differ when returning elements confined to a distribution.
Examples
Generate integers:
let seed = [627457_u32, 697550, 16438, 41926]; let mut random = Random::with_array_seed(seed); let rand = random.next_int32();
Generate random numbers in a range:
let mut random = Random::new()?; let max = Max::Integer(10); let mut rand = rand(&mut random, max)?; assert!(matches!(rand, Rand::Integer(x) if x < 10));
no_std
This crate is no_std
compatible when built without the std
feature. This
crate does not depend on alloc
.
Crate features
All features are enabled by default.
- random-rand - Enables range sampling methods for the
rand()
function. Activating this feature also activates the rand-traits feature. Dropping this feature removes therand
dependency. - rand-traits - Enables implementations of
RngCore
onRandom
andMt
types. Dropping this feature removes therand_core
dependency. - std - Enables a dependency on the Rust Standard Library. Activating
this feature enables
std::error::Error
impls on error types in this crate.
Structs
ArgumentError | Error that indicates a random number could not be generated with the given bounds. |
InitializeError | Error that indicates a |
Mt | The 32-bit Ruby flavor of the Mersenne Twister pseudorandom number generator. |
NewSeedError | Error that indicates the system source of cryptographically secure randomness failed to read sufficient bytes to create a new seed. |
Random | Random provides an interface to Ruby’s pseudo-random number generator, or PRNG. |
UrandomError | Error that indicates the system source of cryptographically secure randomness failed to read the requested bytes. |
Enums
Error | Sum type of all errors possibly returned from |
Max | random-rand A range constraint for generating random numbers. |
Rand | random-rand A generated random number. |
Functions
new_seed | Read a new |
rand | random-rand Generate random numbers bounded from below by 0 and above by the given max. |
seed_to_key | Convert a byte array into a reseeding key of |
urandom | Read random bytes, using platform-provided randomness. |