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