use crate::error::FrozenResult;
pub(in crate::memmap) trait MemMapInterface: Sized + Send + Sync {
type Id: Copy + Eq + PartialEq + core::fmt::Debug + Send + Sync;
fn new(id: Self::Id, length: usize) -> FrozenResult<Self>;
fn unmap(self) -> FrozenResult<()>;
fn length(&self) -> usize;
fn page_size() -> FrozenResult<usize>;
#[allow(unused)]
fn active_page_indices(&self) -> FrozenResult<Vec<usize>>;
#[allow(unused)]
fn evict_pages(&self, indices: &[usize]) -> FrozenResult<()>;
fn sync(&self, length: usize) -> FrozenResult<()>;
unsafe fn as_mut_ptr<T>(&self, offset: usize) -> *mut T
where
T: Sized;
unsafe fn as_ptr<T>(&self, offset: usize) -> *const T
where
T: Sized;
}