Skip to main content

aver_rt/
random.rs

1/// Random number generation backed by the OS entropy source.
2use rand::Rng;
3
4/// Random integer in `[min, max]` inclusive.
5///
6/// # Errors
7/// Returns `Err` if `min > max`.
8pub fn random_int(min: i64, max: i64) -> Result<i64, String> {
9    if min > max {
10        return Err(format!(
11            "Random.int: min ({}) must be <= max ({})",
12            min, max
13        ));
14    }
15    Ok(rand::rng().random_range(min..=max))
16}
17
18/// Random float in `[0.0, 1.0)`.
19pub fn random_float() -> f64 {
20    rand::rng().random_range(0.0..1.0)
21}