Crate fastrand_contrib

source ·
Expand description

Extension functionality for the fastrand crate.

This crate contains code that may be of some use to users of fastrand. Code contained in this crate is not included in fastrand due to either the niche not being large enough to justify the new functionality or for semver concerns.

Usage

Various functions are exposed in this crate as top-level functions. These manipulate the global thread-local RNG and can be used without any local state. Note that these require the "std" default feature to be enabled.

use fastrand_contrib::f32_range;

let x = f32_range(1.5..3.0);
assert!(x >= 1.5 && x < 3.0);

To extend fastrand::Rng, import the RngExt trait.

use fastrand_contrib::RngExt;

Now, all new methods are available on fastrand::Rng.

use fastrand::Rng;
use fastrand_contrib::RngExt;

let mut rng = Rng::with_seed(0x1234);
let x = rng.f32_range(1.5..3.0);
assert!(x >= 1.5 && x < 3.0);

Features

  • std (enabled by default): Enables the std library. Freestanding functions only work with this feature enabled. Also enables the fastrand/std feature.
  • libm: Uses libm dependency for math functions in no_std environment.

Note that some functions are not available in no_std context if libm feature is not enabled.

Re-exports

Structs

  • A random number generator.

Traits

Functions

  • Generate a 32-bit floating point number in the normal distribution with mean mu and standard deviation sigma.
  • Generate a 32-bit floating point number in the normal distribution with mean mu and standard deviation sigma using an approximation algorithm.
  • Generate a 32-bit floating point number in the specified range.
  • Generate a 64-bit floating point number in the normal distribution with mean mu and standard deviation sigma.
  • Generate a 64-bit floating point number in the normal distribution with mean mu and standard deviation sigma using an approximation algorithm.
  • Generate a 64-bit floating point number in the specified range.