fmmap::raw

Struct MemoryMmapFile

Source
pub struct MemoryMmapFile { /* private fields */ }
Available on crate feature sync only.
Expand description

Use Bytes to mock a mmap, which is useful for test and in-memory storage engine.

Implementations§

Source§

impl MemoryMmapFile

Source

pub fn new<P: AsRef<Path>>(path: P, data: Bytes) -> Self

Create a MemoryMmapFile

§Examples
use bytes::{BufMut, BytesMut};
use fmmap::raw::MemoryMmapFile;

let mut data = BytesMut::with_capacity(100);
data.put_slice("some data...".as_bytes());
MemoryMmapFile::new("foo.mem", data.freeze());
Source

pub fn from_vec<P: AsRef<Path>>(path: P, src: Vec<u8>) -> Self

Create a MemoryMmapFile from Vec

§Examples
use fmmap::raw::MemoryMmapFile;

let data = (0..=255u8).collect::<Vec<_>>();
MemoryMmapFile::from_vec("foo.mem", data);
Source

pub fn from_string<P: AsRef<Path>>(path: P, src: String) -> Self

Create a MemoryMmapFile from String

§Examples
use fmmap::raw::MemoryMmapFile;

let data: &'static str = "some data...";
MemoryMmapFile::from_string("foo.mem", data.to_string());
Source

pub fn from_slice<P: AsRef<Path>>(path: P, src: &'static [u8]) -> Self

Create a MemoryMmapFile from static slice

§Examples
use bytes::Bytes;
use fmmap::raw::MemoryMmapFile;

let data: &'static [u8] = "some data...".as_bytes();
MemoryMmapFile::from_slice("foo.mem", data);
Source

pub fn from_str<P: AsRef<Path>>(path: P, src: &'static str) -> Self

Create a MemoryMmapFile from static str

§Examples
use bytes::Bytes;
use fmmap::raw::MemoryMmapFile;

let data: &'static str = "some data...";
MemoryMmapFile::from_str("foo.mem", data);
Source

pub fn copy_from_slice<P: AsRef<Path>>(path: P, src: &[u8]) -> Self

Create a MemoryMmapFile by copy from slice

§Examples
use fmmap::raw::MemoryMmapFile;

MemoryMmapFile::copy_from_slice("foo.mem", "some data...".as_bytes());
Source

pub fn into_bytes(self) -> Bytes

Returns the inner bytes

§Examples
use bytes::Bytes;
use fmmap::raw::MemoryMmapFile;

let b1 = MemoryMmapFile::copy_from_slice("foo.mem", "some data...".as_bytes()).into_bytes();
assert_eq!(b1, Bytes::copy_from_slice("some data...".as_bytes()));

Trait Implementations§

Source§

impl Clone for MemoryMmapFile

Source§

fn clone(&self) -> MemoryMmapFile

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl From<MemoryMmapFile> for MmapFile

Source§

fn from(file: MemoryMmapFile) -> Self

Converts to this type from the input type.
Source§

impl MmapFileExt for MemoryMmapFile

Source§

fn len(&self) -> usize

Returns the current mmap length
Source§

fn as_slice(&self) -> &[u8]

Returns the underlying slice of the mmap
Source§

fn path(&self) -> &Path

Returns the path of the inner file.
Source§

fn is_exec(&self) -> bool

Whether the mmap is executable.
Source§

fn metadata(&self) -> Result<MetaData>

Returns the metadata of file metadata Read more
Source§

fn lock_exclusive(&self) -> Result<()>

Locks the file for shared usage, blocking if the file is currently locked exclusively. Read more
Source§

fn lock_shared(&self) -> Result<()>

Locks the file for exclusive usage, blocking if the file is currently locked. Read more
Source§

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
Source§

fn try_lock_shared(&self) -> Result<()>

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
Source§

fn unlock(&self) -> Result<()>

Unlocks the file. Read more
Source§

fn is_empty(&self) -> bool

Returns the mmap is empty of not.
Source§

fn slice(&self, offset: usize, sz: usize) -> &[u8]

slice returns data starting from offset off of size sz. Read more
Source§

fn bytes(&self, offset: usize, sz: usize) -> Result<&[u8]>

bytes returns data starting from offset off of size sz. Read more
Source§

fn path_buf(&self) -> PathBuf

Returns the path buf of the inner file.
Source§

fn path_lossy(&self) -> Cow<'_, str>

Returns the path lossy string of the inner file.
Source§

fn path_string(&self) -> String

Returns the path string of the inner file.
Source§

fn copy_all_to_vec(&self) -> Vec<u8>

Copy the content of the mmap file to Vec
Source§

fn copy_range_to_vec(&self, offset: usize, len: usize) -> Vec<u8>

Copy a range of content of the mmap file to Vec
Source§

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.
Source§

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.
Source§

fn reader(&self, offset: usize) -> Result<MmapFileReader<'_>>

Returns a MmapFileReader which helps read data from mmap like a normal File. Read more
Source§

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
Source§

fn read(&self, dst: &mut [u8], offset: usize) -> usize

Read bytes to the dst buf from the offset, returns how many bytes read.
Source§

fn read_exact(&self, dst: &mut [u8], offset: usize) -> Result<()>

Read the exact number of bytes required to fill buf.
Source§

fn read_i8(&self, offset: usize) -> Result<i8>

Read a signed 8 bit integer from offset.
Source§

fn read_i16(&self, offset: usize) -> Result<i16>

Read a signed 16 bit integer from offset in big-endian byte order.
Source§

fn read_i16_le(&self, offset: usize) -> Result<i16>

Read a signed 16 bit integer from offset in little-endian byte order.
Source§

fn read_isize(&self, offset: usize) -> Result<isize>

Read a signed integer from offset in big-endian byte order.
Source§

fn read_isize_le(&self, offset: usize) -> Result<isize>

Read a signed integer from offset in little-endian byte order.
Source§

fn read_i32(&self, offset: usize) -> Result<i32>

Read a signed 32 bit integer from offset in big-endian byte order.
Source§

fn read_i32_le(&self, offset: usize) -> Result<i32>

Read a signed 32 bit integer from offset in little-endian byte order.
Source§

fn read_i64(&self, offset: usize) -> Result<i64>

Read a signed 64 bit integer from offset in big-endian byte order.
Source§

fn read_i64_le(&self, offset: usize) -> Result<i64>

Read a signed 64 bit integer from offset in little-endian byte order.
Source§

fn read_i128(&self, offset: usize) -> Result<i128>

Read a signed 128 bit integer from offset in big-endian byte order.
Source§

fn read_i128_le(&self, offset: usize) -> Result<i128>

Read a signed 128 bit integer from offset in little-endian byte order.
Source§

fn read_u8(&self, offset: usize) -> Result<u8>

Read an unsigned 8 bit integer from offset.
Source§

fn read_u16(&self, offset: usize) -> Result<u16>

Read an unsigned 16 bit integer from offset in big-endian.
Source§

fn read_u16_le(&self, offset: usize) -> Result<u16>

Read an unsigned 16 bit integer from offset in little-endian.
Source§

fn read_usize(&self, offset: usize) -> Result<usize>

Read an unsigned integer from offset in big-endian byte order.
Source§

fn read_usize_le(&self, offset: usize) -> Result<usize>

Read an unsigned integer from offset in little-endian byte order.
Source§

fn read_u32(&self, offset: usize) -> Result<u32>

Read an unsigned 32 bit integer from offset in big-endian.
Source§

fn read_u32_le(&self, offset: usize) -> Result<u32>

Read an unsigned 32 bit integer from offset in little-endian.
Source§

fn read_u64(&self, offset: usize) -> Result<u64>

Read an unsigned 64 bit integer from offset in big-endian.
Source§

fn read_u64_le(&self, offset: usize) -> Result<u64>

Read an unsigned 64 bit integer from offset in little-endian.
Source§

fn read_u128(&self, offset: usize) -> Result<u128>

Read an unsigned 128 bit integer from offset in big-endian.
Source§

fn read_u128_le(&self, offset: usize) -> Result<u128>

Read an unsigned 128 bit integer from offset in little-endian.
Source§

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.
Source§

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.
Source§

fn read_f64(&self, offset: usize) -> Result<f64>

Read an IEEE754 single-precision (8 bytes) floating point number from offset in big-endian byte order.
Source§

fn read_f64_le(&self, offset: usize) -> Result<f64>

Read an IEEE754 single-precision (8 bytes) floating point number from offset in little-endian byte order.
Source§

impl PartialEq for MemoryMmapFile

Source§

fn eq(&self, other: &MemoryMmapFile) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for MemoryMmapFile

Source§

impl StructuralPartialEq for MemoryMmapFile

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoResult<T> for T

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more