* Fixes for release * add new test * Remove change applied in development branch * Only add dependency for wasm32 * Update ci.yml Co-authored-by: Luis Moreno <morenol@users.noreply.github.com> Co-authored-by: Lorenzo <tunedconsulting@gmail.com>
34 lines
1.1 KiB
Rust
34 lines
1.1 KiB
Rust
#[cfg(not(feature = "std_rand"))]
|
|
pub use rand::rngs::SmallRng as RngImpl;
|
|
#[cfg(feature = "std_rand")]
|
|
pub use rand::rngs::StdRng as RngImpl;
|
|
use rand::SeedableRng;
|
|
|
|
/// Custom switch for random fuctions
|
|
pub fn get_rng_impl(seed: Option<u64>) -> RngImpl {
|
|
match seed {
|
|
Some(seed) => RngImpl::seed_from_u64(seed),
|
|
None => {
|
|
cfg_if::cfg_if! {
|
|
if #[cfg(feature = "std_rand")] {
|
|
use rand::RngCore;
|
|
RngImpl::seed_from_u64(rand::thread_rng().next_u64())
|
|
} else {
|
|
// no std_random feature build, use getrandom
|
|
#[cfg(feature = "js")]
|
|
{
|
|
let mut buf = [0u8; 64];
|
|
getrandom::getrandom(&mut buf).unwrap();
|
|
RngImpl::seed_from_u64(buf[0] as u64)
|
|
}
|
|
#[cfg(not(feature = "js"))]
|
|
{
|
|
// Using 0 as default seed
|
|
RngImpl::seed_from_u64(0)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|