1use rand::{thread_rng, CryptoRng, Error, RngCore};
4
5#[derive(Clone, Debug, Default)]
6pub struct McRng;
7
8impl RngCore for McRng {
9 #[inline(always)]
10 fn next_u32(&mut self) -> u32 {
11 thread_rng().next_u32()
12 }
13
14 #[inline(always)]
15 fn next_u64(&mut self) -> u64 {
16 thread_rng().next_u64()
17 }
18
19 fn fill_bytes(&mut self, dest: &mut [u8]) {
20 thread_rng().fill_bytes(dest)
21 }
22
23 fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), Error> {
24 thread_rng().try_fill_bytes(dest)
25 }
26}
27
28impl CryptoRng for McRng {}