scsys_gen/
utils.rs

1/*
2    Appellation: utils <module>
3    Contrib: FL03 <jo3mccain@icloud.com>
4    Description: ... Summary ...
5*/
6use rand::{
7    distributions::{Alphanumeric, Standard},
8    prelude::Distribution,
9    Rng,
10};
11
12/// Consolidate resources required for generating random numbers
13pub fn generate_random_number<T>() -> T
14where
15    Standard: Distribution<T>,
16{
17    let mut rnd = rand::thread_rng();
18    rnd.gen::<T>()
19}
20
21pub fn generate_random_string(len: usize) -> String {
22    rand::thread_rng()
23        .sample_iter(&Alphanumeric)
24        .take(len)
25        .map(char::from)
26        .collect()
27}
28
29#[cfg(test)]
30mod tests {
31    use super::*;
32
33    #[test]
34    fn test_random_number() {
35        assert_ne!(
36            generate_random_number::<f64>(),
37            generate_random_number::<f64>()
38        )
39    }
40}