1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use crate::random::get_random_element;

pub struct RandomPool<T>(Vec<T>);

impl<T> RandomPool<T> {
    pub fn new(vec: Vec<T>) -> Self {
        Self(vec)
    }

    pub fn get(&self) -> &T {
        get_random_element(self.0.iter())
    }

    pub fn get_mut(&mut self) -> &mut T {
        get_random_element(self.0.iter_mut())
    }
}