1use rand::{
7 distributions::{Alphanumeric, Standard},
8 prelude::Distribution,
9 Rng,
10};
11
12pub 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}