pandrs/utils/
rand_compat.rs

1// Compatibility module for rand crate versions
2// Providing backward compatibility from rand 0.9.0 to previous versions
3
4use rand::distr::uniform::{SampleRange, SampleUniform};
5use rand::Rng;
6
7/// Compatibility wrapper for thread_rng
8///
9/// This function is provided for backward compatibility with code
10/// that uses rand::thread_rng(). In newer versions of rand,
11/// this has been replaced with rand::rng()
12pub fn thread_rng() -> impl rand::Rng {
13    rand::rng()
14}
15
16/// Compatibility extension trait for gen_range
17///
18/// This trait is provided for backward compatibility with code
19/// that uses rng.gen_range(). In newer versions of rand,
20/// this has been replaced with rng.random_range()
21pub trait GenRangeCompat: Rng {
22    fn gen_range<R, T>(&mut self, range: R) -> T
23    where
24        R: SampleRange<T>,
25        T: SampleUniform,
26    {
27        self.random_range(range)
28    }
29}
30
31// Implement GenRangeCompat for anything that implements Rng
32impl<T: Rng> GenRangeCompat for T {}