criterion2 3.0.3

Statistics-driven micro-benchmarking library
use rand::{
    RngExt, SeedableRng,
    distr::{Distribution, StandardUniform},
    rngs::StdRng,
};

pub fn vec<T>(size: usize, start: usize) -> Option<Vec<T>>
where
    StandardUniform: Distribution<T>,
{
    if size > start + 2 {
        let seed = ((start as u64) << 32) ^ (size as u64);
        let mut rng = StdRng::seed_from_u64(seed);

        Some((0..size).map(|_| rng.random()).collect())
    } else {
        None
    }
}