quill_sql/utils/cache/
mod.rs1use crate::buffer::FrameId;
2use crate::error::QuillSQLResult;
3
4pub mod clock_lru;
5pub mod lru_k;
6pub mod tiny_lfu;
7pub mod window_lfu;
8
9pub trait Replacer {
10 fn new(capacity: usize) -> Self
11 where
12 Self: Sized;
13
14 fn record_access(&mut self, frame_id: FrameId) -> QuillSQLResult<()>;
15
16 fn evict(&mut self) -> Option<FrameId>;
17
18 fn set_evictable(&mut self, frame_id: FrameId, set_evictable: bool) -> QuillSQLResult<()>;
19
20 fn remove(&mut self, frame_id: FrameId);
21
22 fn size(&self) -> usize;
23}