quill_sql/utils/cache/
mod.rs

1use 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}