use crate::{metadata::MemoryMetaData, MetaData, MmapFileExt, MmapFileMutExt};
use bytes::{Bytes, BytesMut};
use std::{
path::{Path, PathBuf},
time::SystemTime,
};
define_impl_constructor_for_mmap_file!(MemoryMmapFile, "MemoryMmapFile", "");
impl_mmap_file_ext!(MemoryMmapFile);
define_and_impl_constructor_for_mmap_file_mut!(
MemoryMmapFileMut,
"MemoryMmapFileMut",
MemoryMmapFile,
"MemoryMmapFile",
"MmapFileExt",
""
);
impl_mmap_file_ext!(MemoryMmapFileMut);
impl MmapFileMutExt for MemoryMmapFileMut {
#[inline]
fn as_mut_slice(&mut self) -> &mut [u8] {
self.mmap.as_mut()
}
#[inline]
fn is_cow(&self) -> bool {
false
}
noop_flush!();
#[inline]
fn truncate(&mut self, max_sz: u64) -> crate::error::Result<()> {
self.mmap.resize(max_sz as usize, 0);
Ok(())
}
#[inline]
fn drop_remove(self) -> crate::error::Result<()> {
Ok(())
}
#[inline]
fn close_with_truncate(self, _max_sz: i64) -> crate::error::Result<()> {
Ok(())
}
}