rantz_random

Crates.iorantz_random
lib.rsrantz_random
version1.2.1
sourcesrc
created_at2024-05-28 21:04:29.016547
updated_at2024-07-20 20:54:23.369286
descriptionMostly just a wrapper around fastrand for a bunch of types. Supports bevy and rantz_spatial2d.
homepagehttps://github.com/BobG1983/rantz_suite
repositoryhttps://github.com/BobG1983/rantz_suite
max_upload_size
id1254850
size35,398
Bob Gardner (BobG1983)

documentation

README

rantz_random

A simple Rust library for generating random values using fastrand. Basically just a fastrand wrapper for a few additional types at the moment. Likely to grow over time. Designed for use with Bevy.

Can generate random values for:

  • i8-128
  • u8-128
  • f32 & f64
  • Vec2/3/4, UVec2/3/4, and IVec2/3/4 (with the bevy feature)
  • Color (with the bevy feature)
  • Degrees, Radians, Position2D, and all the compasses (with the spatial2d feature) - Requires rantz_spatial2d

Can generate random values in a range for:

  • i8-128
  • u8-128
  • f32 & f64
  • Vec2/3/4, UVec2/3/4, and IVec2/3/4 (with the bevy feature)
  • Degrees, Radians, and Position2D (with the spatial2d feature) - Requires rantz_spatial2d

Can shuffle anything Clone + IntoIterator<T> + FromIterator<T> as well as returning a random element, or random index.

Also includes a WeightedTable class for use in weighted random generation.

Usage

Add to your Cargo.toml. Use rantz_random::*; to get access to the traits that define random generation.

Determinism

This crate relies on fastrand which is "deterministic". That is to say, for a given seed value, assuming system order is deterministic, the results will be deterministic.

For gaurenteed determinism, any system that uses the features of this crate will need to be .chain()ed together when added to a Bevy app.

Commit count: 47

cargo fmt