nt_time/file_time/
rand.rs1use rand::{
8 Rng,
9 distr::{Distribution, StandardUniform},
10};
11
12use super::FileTime;
13
14impl Distribution<FileTime> for StandardUniform {
15 fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> FileTime {
16 FileTime::new(rng.random())
17 }
18}
19
20#[cfg(test)]
21mod tests {
22 use rand_pcg::{Pcg64Mcg, rand_core::SeedableRng};
23
24 use super::*;
25
26 #[test]
27 fn sample() {
28 let mut rng = Pcg64Mcg::from_seed(Default::default());
29 let buf: [FileTime; 8] = rng.random();
30 assert_eq!(
31 buf,
32 [
33 FileTime::new(0xE160_E532_6180_0AAB),
34 FileTime::new(0x2A29_11D5_87FC_4ED5),
35 FileTime::new(0xDFE7_5554_BBD3_4D0D),
36 FileTime::new(0x2A4C_F66B_2879_6F51),
37 FileTime::new(0x500E_B6DE_08BD_473B),
38 FileTime::new(0x8660_66C5_0DAB_6374),
39 FileTime::new(0xE8E3_3086_F142_3EFF),
40 FileTime::new(0x7D67_17B2_E579_844F)
41 ]
42 );
43 }
44}