mc_rand/
fallback.rs

1// Copyright (c) 2018-2023 The MobileCoin Foundation
2
3use 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 {}