rolling_buffer/buffer/
traits.rs

1pub trait Rolling<T> 
2where
3    T: Clone + Default,
4{
5    fn new(size: usize) -> Self;
6
7    fn push(&mut self, value: T);
8
9    fn get(&self, i: usize) -> Option<&T>;
10
11    fn last(&self) -> Option<&T>;
12
13    fn last_mut(&mut self) -> Option<&mut T>;
14
15    fn first(&self) -> Option<&T>;
16
17    fn len(&self) -> usize;
18
19    fn size(&self) -> usize;
20
21    fn raw(&self) -> &Vec<T>;
22
23    fn last_removed(&self) -> &Option<T>;
24
25    fn count(&self) -> usize;
26
27    fn is_empty(&self) -> bool;
28    
29    fn to_vec(&self) -> Vec<T>;
30}