Module rand_core::impls

source ·
Expand description

Helper functions for implementing RngCore functions.

For cross-platform reproducibility, these functions all use Little Endian: least-significant part first. For example, next_u64_via_u32 takes u32 values x, y, then outputs (y << 32) | x. To implement next_u32 from next_u64 in little-endian order, one should use next_u64() as u32.

Byte-swapping (like the std to_le functions) is only needed to convert to/from byte sequences, and since its purpose is reproducibility, non-reproducible sources (e.g. OsRng) need not bother with it.