rust_mqtt/utils/
rng_generator.rs1use rand_core::{impls, Error, RngCore};
5
6pub struct CountingRng(pub u64);
7
8impl RngCore for CountingRng {
9 fn next_u32(&mut self) -> u32 {
10 self.next_u64() as u32
11 }
12
13 fn next_u64(&mut self) -> u64 {
14 self.0 += 1;
15 if self.0 > u16::MAX as u64 {
16 self.0 = 1;
17 }
18 self.0
19 }
20
21 fn fill_bytes(&mut self, dest: &mut [u8]) {
22 impls::fill_bytes_via_next(self, dest)
23 }
24
25 fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), Error> {
26 self.fill_bytes(dest);
27 Ok(())
28 }
29}