pub struct MemoryMmapFileMut { /* private fields */ }sync only.Expand description
Use BytesMut to mock a mmap, which is useful for test and in-memory storage engine.
Notes
MemoryMmapFileMut mocks a mmap behaviour, which means when writing to it,
it will not auto-grow its size, so if you want to grow the size of the MemoryMmapFileMut,
you need to truncate it first.
If you want the auto-grow functionality, please use BytesMut.
Implementations
sourceimpl MemoryMmapFileMut
impl MemoryMmapFileMut
sourcepub fn new<P: AsRef<Path>>(path: P) -> Self
pub fn new<P: AsRef<Path>>(path: P) -> Self
Create a MemoryMmapFileMut
Examples
use fmmap::raw::MemoryMmapFileMut;
MemoryMmapFileMut::new("foo.mem");sourcepub fn with_capacity<P: AsRef<Path>>(path: P, cap: usize) -> Self
pub fn with_capacity<P: AsRef<Path>>(path: P, cap: usize) -> Self
Create a MemoryMmapFileMutwith capacity
Examples
use fmmap::raw::MemoryMmapFileMut;
MemoryMmapFileMut::with_capacity("foo.mem", 1000);sourcepub fn from_vec<P: AsRef<Path>>(path: P, src: Vec<u8>) -> Self
pub fn from_vec<P: AsRef<Path>>(path: P, src: Vec<u8>) -> Self
Create a MemoryMmapFileMut from Vec
Examples
use fmmap::raw::MemoryMmapFileMut;
let data = (0..=255u8).collect::<Vec<_>>();
MemoryMmapFileMut::from_vec("foo.mem", data);sourcepub fn from_string<P: AsRef<Path>>(path: P, src: String) -> Self
pub fn from_string<P: AsRef<Path>>(path: P, src: String) -> Self
Create a MemoryMmapFileMut from String
Examples
use fmmap::raw::MemoryMmapFileMut;
let data: &'static str = "some data...";
MemoryMmapFileMut::from_string("foo.mem", data.to_string());sourcepub fn from_str<P: AsRef<Path>>(path: P, src: &'static str) -> Self
pub fn from_str<P: AsRef<Path>>(path: P, src: &'static str) -> Self
Create a MemoryMmapFileMut from static str
Examples
use bytes::Bytes;
use fmmap::raw::MemoryMmapFileMut;
let data: &'static str = "some data...";
MemoryMmapFileMut::from_str("foo.mem", data);sourcepub fn from_slice<P: AsRef<Path>>(path: P, src: &[u8]) -> Self
pub fn from_slice<P: AsRef<Path>>(path: P, src: &[u8]) -> Self
Create a MemoryMmapFileMut by from slice
Examples
use fmmap::raw::MemoryMmapFileMut;
MemoryMmapFileMut::from_slice("foo.mem", "some data...".as_bytes());sourcepub fn into_bytes_mut(self) -> BytesMut
pub fn into_bytes_mut(self) -> BytesMut
Returns the inner mutable bytes
Examples
use bytes::BytesMut;
use fmmap::raw::MemoryMmapFileMut;
let b1 = MemoryMmapFileMut::from_slice("foo.mem", "some data...".as_bytes()).into_bytes_mut();
assert_eq!(b1, BytesMut::from("some data...".as_bytes()));sourcepub fn into_bytes(self) -> Bytes
pub fn into_bytes(self) -> Bytes
Returns the inner bytes
Examples
use bytes::Bytes;
use fmmap::raw::MemoryMmapFileMut;
let b1 = MemoryMmapFileMut::from_slice("foo.mem", "some data...".as_bytes()).into_bytes();
assert_eq!(b1, Bytes::copy_from_slice("some data...".as_bytes()));sourcepub fn freeze(self) -> MemoryMmapFile
pub fn freeze(self) -> MemoryMmapFile
Make the memory mmap file immutable
Examples
use bytes::Bytes;
use fmmap::MmapFileExt;
use fmmap::raw::{MemoryMmapFileMut,MemoryMmapFile};
let b1 = MemoryMmapFileMut::from_string("foo.mem", "some data...".to_string()).freeze();
let b2 = MemoryMmapFile::from_string("foo.mem", "some data...".to_string());
assert!(!b1.is_exec());
assert_eq!(b1.len(), b2.len());
assert_eq!(b1.as_slice(), b2.as_slice());
assert_eq!(b1.path_string(), b2.path_string());Trait Implementations
sourceimpl Clone for MemoryMmapFileMut
impl Clone for MemoryMmapFileMut
sourcefn clone(&self) -> MemoryMmapFileMut
fn clone(&self) -> MemoryMmapFileMut
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
sourceimpl From<MemoryMmapFileMut> for MmapFileMut
impl From<MemoryMmapFileMut> for MmapFileMut
sourcefn from(file: MemoryMmapFileMut) -> Self
fn from(file: MemoryMmapFileMut) -> Self
Converts to this type from the input type.
sourceimpl MmapFileExt for MemoryMmapFileMut
impl MmapFileExt for MemoryMmapFileMut
sourcefn as_slice(&self) -> &[u8]ⓘNotable traits for &[u8]impl<'_> Read for &[u8]impl<'_> Write for &mut [u8]
fn as_slice(&self) -> &[u8]ⓘNotable traits for &[u8]impl<'_> Read for &[u8]impl<'_> Write for &mut [u8]
Returns the underlying slice of the mmap
sourcefn lock_exclusive(&self) -> Result<()>
fn lock_exclusive(&self) -> Result<()>
Locks the file for shared usage, blocking if the file is currently locked exclusively. Read more
Locks the file for exclusive usage, blocking if the file is currently locked. Read more
sourcefn try_lock_exclusive(&self) -> Result<()>
fn try_lock_exclusive(&self) -> Result<()>
Locks the file for shared usage, or returns a an error if the file is currently locked (see lock_contended_error). Read more
Locks the file for shared usage, or returns a an error if the file is currently locked (see lock_contended_error).Locks the file for shared usage, or returns a an error if the file is currently locked (see lock_contended_error). Read more
sourcefn slice(&self, offset: usize, sz: usize) -> &[u8]ⓘNotable traits for &[u8]impl<'_> Read for &[u8]impl<'_> Write for &mut [u8]
fn slice(&self, offset: usize, sz: usize) -> &[u8]ⓘNotable traits for &[u8]impl<'_> Read for &[u8]impl<'_> Write for &mut [u8]
slice returns data starting from offset off of size sz. Read more
sourcefn bytes(&self, offset: usize, sz: usize) -> Result<&[u8]>
fn bytes(&self, offset: usize, sz: usize) -> Result<&[u8]>
bytes returns data starting from offset off of size sz. Read more
sourcefn path_lossy(&self) -> Cow<'_, str>
fn path_lossy(&self) -> Cow<'_, str>
Returns the path lossy string of the inner file.
sourcefn path_string(&self) -> String
fn path_string(&self) -> String
Returns the path string of the inner file.
sourcefn copy_all_to_vec(&self) -> Vec<u8>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
fn copy_all_to_vec(&self) -> Vec<u8>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
Copy the content of the mmap file to Vec
sourcefn copy_range_to_vec(&self, offset: usize, len: usize) -> Vec<u8>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
fn copy_range_to_vec(&self, offset: usize, len: usize) -> Vec<u8>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
Copy a range of content of the mmap file to Vec
sourcefn write_all_to_new_file<P: AsRef<Path>>(&self, new_file_path: P) -> Result<()>
fn write_all_to_new_file<P: AsRef<Path>>(&self, new_file_path: P) -> Result<()>
Write the content of the mmap file to a new file.
sourcefn write_range_to_new_file<P: AsRef<Path>>(
&self,
new_file_path: P,
offset: usize,
len: usize
) -> Result<()>
fn write_range_to_new_file<P: AsRef<Path>>(
&self,
new_file_path: P,
offset: usize,
len: usize
) -> Result<()>
Write a range of content of the mmap file to new file.
sourcefn reader(&self, offset: usize) -> Result<MmapFileReader<'_>>
fn reader(&self, offset: usize) -> Result<MmapFileReader<'_>>
Returns a MmapFileReader which helps read data from mmap like a normal File. Read more
sourcefn range_reader(&self, offset: usize, len: usize) -> Result<MmapFileReader<'_>>
fn range_reader(&self, offset: usize, len: usize) -> Result<MmapFileReader<'_>>
Returns a MmapFileReader base on the given offset and len, which helps read data from mmap like a normal File. Read more
sourcefn read(&self, dst: &mut [u8], offset: usize) -> usize
fn read(&self, dst: &mut [u8], offset: usize) -> usize
Read bytes to the dst buf from the offset, returns how many bytes read.
sourcefn read_exact(&self, dst: &mut [u8], offset: usize) -> Result<()>
fn read_exact(&self, dst: &mut [u8], offset: usize) -> Result<()>
Read the exact number of bytes required to fill buf.
sourcefn read_i16(&self, offset: usize) -> Result<i16>
fn read_i16(&self, offset: usize) -> Result<i16>
Read a signed 16 bit integer from offset in big-endian byte order.
sourcefn read_i16_le(&self, offset: usize) -> Result<i16>
fn read_i16_le(&self, offset: usize) -> Result<i16>
Read a signed 16 bit integer from offset in little-endian byte order.
sourcefn read_isize(&self, offset: usize) -> Result<isize>
fn read_isize(&self, offset: usize) -> Result<isize>
Read a signed integer from offset in big-endian byte order.
sourcefn read_isize_le(&self, offset: usize) -> Result<isize>
fn read_isize_le(&self, offset: usize) -> Result<isize>
Read a signed integer from offset in little-endian byte order.
sourcefn read_i32(&self, offset: usize) -> Result<i32>
fn read_i32(&self, offset: usize) -> Result<i32>
Read a signed 32 bit integer from offset in big-endian byte order.
sourcefn read_i32_le(&self, offset: usize) -> Result<i32>
fn read_i32_le(&self, offset: usize) -> Result<i32>
Read a signed 32 bit integer from offset in little-endian byte order.
sourcefn read_i64(&self, offset: usize) -> Result<i64>
fn read_i64(&self, offset: usize) -> Result<i64>
Read a signed 64 bit integer from offset in big-endian byte order.
sourcefn read_i64_le(&self, offset: usize) -> Result<i64>
fn read_i64_le(&self, offset: usize) -> Result<i64>
Read a signed 64 bit integer from offset in little-endian byte order.
sourcefn read_i128(&self, offset: usize) -> Result<i128>
fn read_i128(&self, offset: usize) -> Result<i128>
Read a signed 128 bit integer from offset in big-endian byte order.
sourcefn read_i128_le(&self, offset: usize) -> Result<i128>
fn read_i128_le(&self, offset: usize) -> Result<i128>
Read a signed 128 bit integer from offset in little-endian byte order.
sourcefn read_u16(&self, offset: usize) -> Result<u16>
fn read_u16(&self, offset: usize) -> Result<u16>
Read an unsigned 16 bit integer from offset in big-endian.
sourcefn read_u16_le(&self, offset: usize) -> Result<u16>
fn read_u16_le(&self, offset: usize) -> Result<u16>
Read an unsigned 16 bit integer from offset in little-endian.
sourcefn read_usize(&self, offset: usize) -> Result<usize>
fn read_usize(&self, offset: usize) -> Result<usize>
Read an unsigned integer from offset in big-endian byte order.
sourcefn read_usize_le(&self, offset: usize) -> Result<usize>
fn read_usize_le(&self, offset: usize) -> Result<usize>
Read an unsigned integer from offset in little-endian byte order.
sourcefn read_u32(&self, offset: usize) -> Result<u32>
fn read_u32(&self, offset: usize) -> Result<u32>
Read an unsigned 32 bit integer from offset in big-endian.
sourcefn read_u32_le(&self, offset: usize) -> Result<u32>
fn read_u32_le(&self, offset: usize) -> Result<u32>
Read an unsigned 32 bit integer from offset in little-endian.
sourcefn read_u64(&self, offset: usize) -> Result<u64>
fn read_u64(&self, offset: usize) -> Result<u64>
Read an unsigned 64 bit integer from offset in big-endian.
sourcefn read_u64_le(&self, offset: usize) -> Result<u64>
fn read_u64_le(&self, offset: usize) -> Result<u64>
Read an unsigned 64 bit integer from offset in little-endian.
sourcefn read_u128(&self, offset: usize) -> Result<u128>
fn read_u128(&self, offset: usize) -> Result<u128>
Read an unsigned 128 bit integer from offset in big-endian.
sourcefn read_u128_le(&self, offset: usize) -> Result<u128>
fn read_u128_le(&self, offset: usize) -> Result<u128>
Read an unsigned 128 bit integer from offset in little-endian.
sourcefn read_f32(&self, offset: usize) -> Result<f32>
fn read_f32(&self, offset: usize) -> Result<f32>
Read an IEEE754 single-precision (4 bytes) floating point number from offset in big-endian byte order. Read more
sourcefn read_f32_le(&self, offset: usize) -> Result<f32>
fn read_f32_le(&self, offset: usize) -> Result<f32>
Read an IEEE754 single-precision (4 bytes) floating point number from offset in little-endian byte order. Read more
sourceimpl MmapFileMutExt for MemoryMmapFileMut
impl MmapFileMutExt for MemoryMmapFileMut
sourcefn as_mut_slice(&mut self) -> &mut [u8]ⓘNotable traits for &[u8]impl<'_> Read for &[u8]impl<'_> Write for &mut [u8]
fn as_mut_slice(&mut self) -> &mut [u8]ⓘNotable traits for &[u8]impl<'_> Read for &[u8]impl<'_> Write for &mut [u8]
Returns the mutable underlying slice of the mmap
sourcefn flush(&self) -> Result<()>
fn flush(&self) -> Result<()>
Flushes outstanding memory map modifications to disk (if the inner is a real file). Read more
sourcefn flush_async(&self) -> Result<()>
fn flush_async(&self) -> Result<()>
Asynchronously flushes outstanding memory map modifications to disk(if the inner is a real file). Read more
sourcefn flush_range(&self, _offset: usize, _len: usize) -> Result<()>
fn flush_range(&self, _offset: usize, _len: usize) -> Result<()>
Flushes outstanding memory map modifications in the range to disk(if the inner is a real file). Read more
sourcefn flush_async_range(&self, _offset: usize, _len: usize) -> Result<()>
fn flush_async_range(&self, _offset: usize, _len: usize) -> Result<()>
Asynchronously flushes outstanding memory map modifications in the range to disk(if the inner is a real file). Read more
sourcefn truncate(&mut self, max_sz: u64) -> Result<()>
fn truncate(&mut self, max_sz: u64) -> Result<()>
Truncates the file to the max_size, which will lead to
do re-mmap and sync_dir if the inner is a real file. Read more
sourcefn close_with_truncate(self, _max_sz: i64) -> Result<()>
fn close_with_truncate(self, _max_sz: i64) -> Result<()>
Close and truncate the underlying file
sourcefn slice_mut(&mut self, offset: usize, sz: usize) -> &mut [u8]ⓘNotable traits for &[u8]impl<'_> Read for &[u8]impl<'_> Write for &mut [u8]
fn slice_mut(&mut self, offset: usize, sz: usize) -> &mut [u8]ⓘNotable traits for &[u8]impl<'_> Read for &[u8]impl<'_> Write for &mut [u8]
slice_mut returns mutable data starting from offset off of size sz. Read more
sourcefn bytes_mut(&mut self, offset: usize, sz: usize) -> Result<&mut [u8]>
fn bytes_mut(&mut self, offset: usize, sz: usize) -> Result<&mut [u8]>
bytes_mut returns mutable data starting from offset off of size sz. Read more
sourcefn zero_range(&mut self, start: usize, end: usize)
fn zero_range(&mut self, start: usize, end: usize)
Fill 0 to the specific range
sourcefn writer(&mut self, offset: usize) -> Result<MmapFileWriter<'_>>
fn writer(&mut self, offset: usize) -> Result<MmapFileWriter<'_>>
Returns a MmapFileWriter base on the given offset, which helps read or write data from mmap like a normal File. Read more
sourcefn range_writer(
&mut self,
offset: usize,
len: usize
) -> Result<MmapFileWriter<'_>>
fn range_writer(
&mut self,
offset: usize,
len: usize
) -> Result<MmapFileWriter<'_>>
Returns a MmapFileWriter base on the given offset and len, which helps read or write data from mmap like a normal File. Read more
sourcefn write(&mut self, src: &[u8], offset: usize) -> usize
fn write(&mut self, src: &[u8], offset: usize) -> usize
Write bytes to the mmap from the offset.
sourcefn write_all(&mut self, src: &[u8], offset: usize) -> Result<()>
fn write_all(&mut self, src: &[u8], offset: usize) -> Result<()>
Write the all of bytes in src to the mmap from the offset.
sourcefn write_i8(&mut self, val: i8, offset: usize) -> Result<()>
fn write_i8(&mut self, val: i8, offset: usize) -> Result<()>
Writes a signed 8 bit integer to mmap from the offset.
sourcefn write_i16(&mut self, val: i16, offset: usize) -> Result<()>
fn write_i16(&mut self, val: i16, offset: usize) -> Result<()>
Writes a signed 16 bit integer to mmap from the offset in the big-endian byte order.
sourcefn write_i16_le(&mut self, val: i16, offset: usize) -> Result<()>
fn write_i16_le(&mut self, val: i16, offset: usize) -> Result<()>
Writes a signed 16 bit integer to mmap from the offset in the little-endian byte order.
sourcefn write_isize(&mut self, val: isize, offset: usize) -> Result<()>
fn write_isize(&mut self, val: isize, offset: usize) -> Result<()>
Writes a signed integer to mmap from the offset in the big-endian byte order.
sourcefn write_isize_le(&mut self, val: isize, offset: usize) -> Result<()>
fn write_isize_le(&mut self, val: isize, offset: usize) -> Result<()>
Writes a signed integer to mmap from the offset in the little-endian byte order.
sourcefn write_i32(&mut self, val: i32, offset: usize) -> Result<()>
fn write_i32(&mut self, val: i32, offset: usize) -> Result<()>
Writes a signed 32 bit integer to mmap from the offset in the big-endian byte order.
sourcefn write_i32_le(&mut self, val: i32, offset: usize) -> Result<()>
fn write_i32_le(&mut self, val: i32, offset: usize) -> Result<()>
Writes a signed 32 bit integer to mmap from the offset in the little-endian byte order.
sourcefn write_i64(&mut self, val: i64, offset: usize) -> Result<()>
fn write_i64(&mut self, val: i64, offset: usize) -> Result<()>
Writes a signed 64 bit integer to mmap from the offset in the big-endian byte order.
sourcefn write_i64_le(&mut self, val: i64, offset: usize) -> Result<()>
fn write_i64_le(&mut self, val: i64, offset: usize) -> Result<()>
Writes a signed 64 bit integer to mmap from the offset in the little-endian byte order.
sourcefn write_i128(&mut self, val: i128, offset: usize) -> Result<()>
fn write_i128(&mut self, val: i128, offset: usize) -> Result<()>
Writes a signed 128 bit integer to mmap from the offset in the big-endian byte order.
sourcefn write_i128_le(&mut self, val: i128, offset: usize) -> Result<()>
fn write_i128_le(&mut self, val: i128, offset: usize) -> Result<()>
Writes a signed 128 bit integer to mmap from the offset in the little-endian byte order.
sourcefn write_u8(&mut self, val: u8, offset: usize) -> Result<()>
fn write_u8(&mut self, val: u8, offset: usize) -> Result<()>
Writes an unsigned 8 bit integer to mmap from the offset.
sourcefn write_u16(&mut self, val: u16, offset: usize) -> Result<()>
fn write_u16(&mut self, val: u16, offset: usize) -> Result<()>
Writes an unsigned 16 bit integer to mmap from the offset in the big-endian byte order.
sourcefn write_u16_le(&mut self, val: u16, offset: usize) -> Result<()>
fn write_u16_le(&mut self, val: u16, offset: usize) -> Result<()>
Writes an unsigned 16 bit integer to mmap from the offset in the little-endian byte order.
sourcefn write_usize(&mut self, val: usize, offset: usize) -> Result<()>
fn write_usize(&mut self, val: usize, offset: usize) -> Result<()>
Writes an unsigned integer to mmap from the offset in the big-endian byte order.
sourcefn write_usize_le(&mut self, val: usize, offset: usize) -> Result<()>
fn write_usize_le(&mut self, val: usize, offset: usize) -> Result<()>
Writes an unsigned integer to mmap from the offset in the little-endian byte order.
sourcefn write_u32(&mut self, val: u32, offset: usize) -> Result<()>
fn write_u32(&mut self, val: u32, offset: usize) -> Result<()>
Writes an unsigned 32 bit integer to mmap from the offset in the big-endian byte order.
sourcefn write_u32_le(&mut self, val: u32, offset: usize) -> Result<()>
fn write_u32_le(&mut self, val: u32, offset: usize) -> Result<()>
Writes an unsigned 32 bit integer to mmap from the offset in the little-endian byte order.
sourcefn write_u64(&mut self, val: u64, offset: usize) -> Result<()>
fn write_u64(&mut self, val: u64, offset: usize) -> Result<()>
Writes an unsigned 64 bit integer to mmap from the offset in the big-endian byte order.
sourcefn write_u64_le(&mut self, val: u64, offset: usize) -> Result<()>
fn write_u64_le(&mut self, val: u64, offset: usize) -> Result<()>
Writes an unsigned 64 bit integer to mmap from the offset in the little-endian byte order.
sourcefn write_u128(&mut self, val: u128, offset: usize) -> Result<()>
fn write_u128(&mut self, val: u128, offset: usize) -> Result<()>
Writes an unsigned 128 bit integer to mmap from the offset in the big-endian byte order.
sourcefn write_u128_le(&mut self, val: u128, offset: usize) -> Result<()>
fn write_u128_le(&mut self, val: u128, offset: usize) -> Result<()>
Writes an unsigned 128 bit integer to mmap from the offset in the little-endian byte order.
sourcefn write_f32(&mut self, val: f32, offset: usize) -> Result<()>
fn write_f32(&mut self, val: f32, offset: usize) -> Result<()>
Writes an IEEE754 single-precision (4 bytes) floating point number to mmap from the offset in big-endian byte order.
sourcefn write_f32_le(&mut self, val: f32, offset: usize) -> Result<()>
fn write_f32_le(&mut self, val: f32, offset: usize) -> Result<()>
Writes an IEEE754 single-precision (4 bytes) floating point number to mmap from the offset in little-endian byte order.
sourceimpl PartialEq<MemoryMmapFileMut> for MemoryMmapFileMut
impl PartialEq<MemoryMmapFileMut> for MemoryMmapFileMut
sourcefn eq(&self, other: &MemoryMmapFileMut) -> bool
fn eq(&self, other: &MemoryMmapFileMut) -> bool
This method tests for self and other values to be equal, and is used
by ==. Read more
sourcefn ne(&self, other: &MemoryMmapFileMut) -> bool
fn ne(&self, other: &MemoryMmapFileMut) -> bool
This method tests for !=.
impl Eq for MemoryMmapFileMut
impl StructuralEq for MemoryMmapFileMut
impl StructuralPartialEq for MemoryMmapFileMut
Auto Trait Implementations
impl RefUnwindSafe for MemoryMmapFileMut
impl Send for MemoryMmapFileMut
impl Sync for MemoryMmapFileMut
impl Unpin for MemoryMmapFileMut
impl UnwindSafe for MemoryMmapFileMut
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more