use std::collections::hash_map::RandomState;
use std::hash::{BuildHasher, Hasher};
use std::mem;
pub fn fill_buf(bytes: &mut [u8]) {
bytes
.chunks_mut(mem::size_of::<u32>())
.zip(random_numbers(random_seed() as u32).map(|n| n.to_be_bytes()))
.for_each(|(chunk, rand)| chunk.copy_from_slice(&rand[..chunk.len()]))
}
pub fn random_numbers(seed: u32) -> impl Iterator<Item = u32> {
let mut random = seed;
std::iter::repeat_with(move || {
random ^= random << 13;
random ^= random >> 17;
random ^= random << 5;
random
})
}
pub fn random_seed() -> u64 {
RandomState::new().build_hasher().finish()
}