cardinal_kernel/util/rng.rs
1use rand::{Rng, SeedableRng};
2use rand_pcg::Pcg64;
3
4pub struct GameRng {
5 rng: Pcg64,
6}
7
8impl GameRng {
9 pub fn new(seed: u64) -> Self {
10 Self {
11 rng: Pcg64::seed_from_u64(seed),
12 }
13 }
14
15 pub fn generate<T>(&mut self) -> T
16 where
17 rand::distributions::Standard: rand::distributions::Distribution<T>,
18 {
19 self.rng.r#gen()
20 }
21}