sim: Migrate main sim to rand 0.7
Adapt to the API changes that have happened in recent versions of the
rand crate.
Signed-off-by: David Brown <david.brown@linaro.org>
diff --git a/sim/src/image.rs b/sim/src/image.rs
index 174904f..a44aadb 100644
--- a/sim/src/image.rs
+++ b/sim/src/image.rs
@@ -15,8 +15,8 @@
warn,
};
use rand::{
- distributions::{IndependentSample, Range},
- Rng, SeedableRng, XorShiftRng,
+ Rng, RngCore, SeedableRng,
+ rngs::SmallRng,
};
use std::{
collections::HashSet,
@@ -1067,8 +1067,7 @@
let mut resets = vec![0i32; count];
let mut remaining_ops = total_ops;
for i in 0 .. count {
- let ops = Range::new(1, remaining_ops / 2);
- let reset_counter = ops.ind_sample(&mut rng);
+ let reset_counter = rng.gen_range(1, remaining_ops / 2);
let mut counter = reset_counter;
match c::boot_go(&mut flash, &self.areadesc, Some(&mut counter), false) {
(0, _) | (-0x13579, _) => (),
@@ -1626,8 +1625,13 @@
// Drop some pseudo-random gibberish onto the data.
fn splat(data: &mut [u8], seed: usize) {
- let seed_block = [0x135782ea, 0x92184728, data.len() as u32, seed as u32];
- let mut rng: XorShiftRng = SeedableRng::from_seed(seed_block);
+ let mut seed_block = [0u8; 16];
+ let mut buf = Cursor::new(&mut seed_block[..]);
+ buf.write_u32::<LittleEndian>(0x135782ea).unwrap();
+ buf.write_u32::<LittleEndian>(0x92184728).unwrap();
+ buf.write_u32::<LittleEndian>(data.len() as u32).unwrap();
+ buf.write_u32::<LittleEndian>(seed as u32).unwrap();
+ let mut rng: SmallRng = SeedableRng::from_seed(seed_block);
rng.fill_bytes(data);
}