mirror of
https://github.com/meilisearch/meilisearch.git
synced 2025-06-19 19:08:10 +00:00
25 lines
527 B
Rust
25 lines
527 B
Rust
use std::sync::Arc;
|
|
|
|
use memmap2::Mmap;
|
|
|
|
/// Wrapper around Mmap allowing to virtualy clone grenad-chunks
|
|
/// in a parallel process like the indexing.
|
|
#[derive(Debug, Clone)]
|
|
pub struct ClonableMmap {
|
|
inner: Arc<Mmap>,
|
|
}
|
|
|
|
impl AsRef<[u8]> for ClonableMmap {
|
|
fn as_ref(&self) -> &[u8] {
|
|
self.inner.as_ref()
|
|
}
|
|
}
|
|
|
|
impl From<Mmap> for ClonableMmap {
|
|
fn from(inner: Mmap) -> ClonableMmap {
|
|
ClonableMmap { inner: Arc::new(inner) }
|
|
}
|
|
}
|
|
|
|
pub type CursorClonableMmap = std::io::Cursor<ClonableMmap>;
|