pub struct RotatingList(usize, Vec); impl RotatingList { pub fn new() -> Self { Self(0, Vec::new()) } pub fn push(&mut self, value: T) { self.1.push(value); } pub fn get(&mut self) -> &mut T { if self.0 >= self.1.len() { self.0 = 0; } self.0 += 1; &mut self.1[self.0-1] } pub fn iter(&mut self) -> &mut Vec { &mut self.1 } }