1#[cfg(any(feature = "v4", feature = "v7"))]
2pub(crate) fn bytes() -> [u8; 16] {
3 #[cfg(not(feature = "fast-rng"))]
4 {
5 let mut bytes: [u8; 16] = [0u8; 16];
6
7 getrandom::getrandom(&mut bytes).unwrap_or_else(|err: Error| {
8 // NB: getrandom::Error has no source; this is adequate display
9 panic!("could not retrieve random bytes for uuid: {}", err)
10 });
11
12 bytes
13 }
14
15 #[cfg(feature = "fast-rng")]
16 {
17 rand::random()
18 }
19}
20
21#[cfg(any(feature = "v1", feature = "v6"))]
22pub(crate) fn u16() -> u16 {
23 #[cfg(not(feature = "fast-rng"))]
24 {
25 let mut bytes = [0u8; 2];
26
27 getrandom::getrandom(&mut bytes).unwrap_or_else(|err| {
28 // NB: getrandom::Error has no source; this is adequate display
29 panic!("could not retrieve random bytes for uuid: {}", err)
30 });
31
32 ((bytes[0] as u16) << 8) | (bytes[1] as u16)
33 }
34
35 #[cfg(feature = "fast-rng")]
36 {
37 rand::random()
38 }
39}
40