nanoid/
rngs.rs

1use rand::{
2    rngs::{SmallRng, StdRng},
3    Rng, SeedableRng,
4};
5
6pub fn default(size: usize) -> Vec<u8> {
7    let mut rng = StdRng::from_entropy();
8    let mut result: Vec<u8> = vec![0; size];
9
10    rng.fill(&mut result[..]);
11
12    result
13}
14
15#[cfg(test)]
16mod test_default {
17    use super::*;
18
19    #[test]
20    fn generates_random_vectors() {
21        let bytes = default(5);
22
23        assert_eq!(bytes.len(), 5);
24    }
25}
26
27pub fn non_secure(size: usize) -> Vec<u8> {
28    let mut rng = SmallRng::from_entropy();
29    let mut result = vec![0u8; size];
30
31    rng.fill(&mut result[..]);
32
33    result
34}
35
36#[cfg(test)]
37mod test_non_secure {
38    use super::non_secure;
39
40    #[test]
41    fn generates_random_vectors() {
42        let bytes = non_secure(5);
43
44        assert_eq!(bytes.len(), 5);
45    }
46}