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}