pub struct PageManager { /* private fields */ }Expand description
Manages a file-backed page store with free-list allocation.
Implementations§
Source§impl PageManager
impl PageManager
Sourcepub fn open(dir_path: &Path) -> MenteResult<Self>
pub fn open(dir_path: &Path) -> MenteResult<Self>
Open (or create) a page file at dir_path/pages.db.
Sourcepub fn allocate_page(&mut self) -> MenteResult<PageId>
pub fn allocate_page(&mut self) -> MenteResult<PageId>
Allocate a new page, reusing from the free list when possible.
Sourcepub fn write_page(&mut self, page_id: PageId, page: &Page) -> MenteResult<()>
pub fn write_page(&mut self, page_id: PageId, page: &Page) -> MenteResult<()>
Write a page to disk.
Sourcepub fn free_page(&mut self, page_id: PageId) -> MenteResult<()>
pub fn free_page(&mut self, page_id: PageId) -> MenteResult<()>
Return a page to the free list.
Sourcepub fn page_count(&self) -> u64
pub fn page_count(&self) -> u64
Total number of pages (including the header page).
Sourcepub fn sync(&mut self) -> MenteResult<()>
pub fn sync(&mut self) -> MenteResult<()>
Sync page file data to disk.
Auto Trait Implementations§
impl Freeze for PageManager
impl RefUnwindSafe for PageManager
impl Send for PageManager
impl Sync for PageManager
impl Unpin for PageManager
impl UnsafeUnpin for PageManager
impl UnwindSafe for PageManager
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more