rustgym 0.2.0

rustgym solutions
Documentation
use rand::prelude::*;

struct Solution {
    rng: ThreadRng,
    nums: Vec<i32>,
    n: usize,
}

impl Solution {
    fn new(nums: Vec<i32>) -> Self {
        let n = nums.len();
        let rng = thread_rng();
        Solution { rng, nums, n }
    }

    fn reset(&self) -> Vec<i32> {
        self.nums.to_vec()
    }

    fn shuffle(&mut self) -> Vec<i32> {
        let mut v = self.nums.to_vec();
        let n = self.n;
        for i in 0..n {
            let j = self.rng.gen_range(i, n);
            v.swap(i, j);
        }
        v
    }
}