warlocks_cauldron/
pool.rs

1use crate::random::get_random_element;
2
3pub struct RandomPool<T>(Vec<T>);
4
5impl<T> RandomPool<T> {
6    pub fn new(vec: Vec<T>) -> Self {
7        Self(vec)
8    }
9
10    pub fn get(&self) -> &T {
11        get_random_element(self.0.iter())
12    }
13
14    pub fn get_mut(&mut self) -> &mut T {
15        get_random_element(self.0.iter_mut())
16    }
17}