1use std::fmt::Debug;
2
3pub struct CacheQueue<T, const L: usize> {
8 data: [T; L],
9 add: usize,
10 useed: usize,
11}
12
13impl<T: Default, const L: usize> CacheQueue<T, L> {
14 pub fn new() -> Self {
15 let data = std::array::from_fn(|_| T::default());
16 CacheQueue {
17 data: data,
18 add: 0,
19 useed: 0,
20 }
21 }
22}
23
24impl<T, const L: usize> CacheQueue<T, L> {
25 pub fn push(&mut self, t: T) {
26 self.data[self.add] = t;
27 self.add += 1;
28 if self.add >= L {
29 self.add = 0;
30 }
31 }
32}