continuwuity/src/core/utils/rand.rs
Jason Volk 7397064edd fix arithmetic side-effects
Signed-off-by: Jason Volk <jason@zemos.net>
2024-07-08 22:02:09 +00:00

28 lines
554 B
Rust

use std::{
ops::Range,
time::{Duration, SystemTime},
};
use rand::{thread_rng, Rng};
pub fn string(length: usize) -> String {
thread_rng()
.sample_iter(&rand::distributions::Alphanumeric)
.take(length)
.map(char::from)
.collect()
}
#[inline]
#[must_use]
pub fn timepoint_secs(range: Range<u64>) -> SystemTime {
SystemTime::now()
.checked_add(secs(range))
.expect("range does not overflow SystemTime")
}
#[must_use]
pub fn secs(range: Range<u64>) -> Duration {
let mut rng = thread_rng();
Duration::from_secs(rng.gen_range(range))
}