pub struct LmdbBlobStore { /* private fields */ }Expand description
LMDB-backed blob store implementing hashtree’s Store trait.
Implementations§
Source§impl LmdbBlobStore
impl LmdbBlobStore
Sourcepub fn new<P: AsRef<Path>>(path: P) -> Result<Self, StoreError>
pub fn new<P: AsRef<Path>>(path: P) -> Result<Self, StoreError>
Open or create an LMDB blob store at the given path.
Sourcepub fn with_max_bytes<P: AsRef<Path>>(
path: P,
max_bytes: u64,
) -> Result<Self, StoreError>
pub fn with_max_bytes<P: AsRef<Path>>( path: P, max_bytes: u64, ) -> Result<Self, StoreError>
Open or create with a maximum logical storage size.
Sourcepub fn with_map_size<P: AsRef<Path>>(
path: P,
map_size: usize,
) -> Result<Self, StoreError>
pub fn with_map_size<P: AsRef<Path>>( path: P, map_size: usize, ) -> Result<Self, StoreError>
Open or create with custom map size.
Sourcepub fn exists(&self, hash: &Hash) -> Result<bool, StoreError>
pub fn exists(&self, hash: &Hash) -> Result<bool, StoreError>
Check if a hash exists (sync version for internal use).
pub fn map_size_bytes(&self) -> usize
Sourcepub fn stats(&self) -> Result<LmdbStats, StoreError>
pub fn stats(&self) -> Result<LmdbStats, StoreError>
Get storage statistics.
Sourcepub fn put_sync(&self, hash: Hash, data: &[u8]) -> Result<bool, StoreError>
pub fn put_sync(&self, hash: Hash, data: &[u8]) -> Result<bool, StoreError>
Sync put operation (for use in sync contexts).
Sourcepub fn put_many_sync(
&self,
items: &[(Hash, Vec<u8>)],
) -> Result<usize, StoreError>
pub fn put_many_sync( &self, items: &[(Hash, Vec<u8>)], ) -> Result<usize, StoreError>
Sync batch put operation (for use in sync contexts).
Sourcepub fn get_sync(&self, hash: &Hash) -> Result<Option<Vec<u8>>, StoreError>
pub fn get_sync(&self, hash: &Hash) -> Result<Option<Vec<u8>>, StoreError>
Sync get operation (for use in sync contexts).
Sourcepub fn delete_sync(&self, hash: &Hash) -> Result<bool, StoreError>
pub fn delete_sync(&self, hash: &Hash) -> Result<bool, StoreError>
Sync delete operation (for use in sync contexts).
Trait Implementations§
Source§impl Store for LmdbBlobStore
impl Store for LmdbBlobStore
Source§fn put<'life0, 'async_trait>(
&'life0 self,
hash: Hash,
data: Vec<u8>,
) -> Pin<Box<dyn Future<Output = Result<bool, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn put<'life0, 'async_trait>(
&'life0 self,
hash: Hash,
data: Vec<u8>,
) -> Pin<Box<dyn Future<Output = Result<bool, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Store data by its hash
Returns true if newly stored, false if already existed
Source§fn put_many<'life0, 'async_trait>(
&'life0 self,
items: Vec<(Hash, Vec<u8>)>,
) -> Pin<Box<dyn Future<Output = Result<usize, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn put_many<'life0, 'async_trait>(
&'life0 self,
items: Vec<(Hash, Vec<u8>)>,
) -> Pin<Box<dyn Future<Output = Result<usize, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Store multiple blobs.
Returns the number of newly stored items.
Source§fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
hash: &'life1 Hash,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
hash: &'life1 Hash,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Retrieve data by hash
Returns data or None if not found
Source§fn has<'life0, 'life1, 'async_trait>(
&'life0 self,
hash: &'life1 Hash,
) -> Pin<Box<dyn Future<Output = Result<bool, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn has<'life0, 'life1, 'async_trait>(
&'life0 self,
hash: &'life1 Hash,
) -> Pin<Box<dyn Future<Output = Result<bool, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Check if hash exists
Source§fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
hash: &'life1 Hash,
) -> Pin<Box<dyn Future<Output = Result<bool, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
hash: &'life1 Hash,
) -> Pin<Box<dyn Future<Output = Result<bool, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Delete by hash
Returns true if deleted, false if didn’t exist
Source§fn set_max_bytes(&self, max: u64)
fn set_max_bytes(&self, max: u64)
Set maximum storage size in bytes. 0 = unlimited.
Source§fn stats<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = StoreStats> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn stats<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = StoreStats> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get storage statistics
Source§fn evict_if_needed<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn evict_if_needed<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Evict unpinned items if over storage limit.
Returns number of bytes freed.
Source§fn pin<'life0, 'life1, 'async_trait>(
&'life0 self,
hash: &'life1 Hash,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn pin<'life0, 'life1, 'async_trait>(
&'life0 self,
hash: &'life1 Hash,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Pin a hash (increment ref count). Pinned items are not evicted.
Source§fn unpin<'life0, 'life1, 'async_trait>(
&'life0 self,
hash: &'life1 Hash,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn unpin<'life0, 'life1, 'async_trait>(
&'life0 self,
hash: &'life1 Hash,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Unpin a hash (decrement ref count). Item can be evicted when count reaches 0.
Auto Trait Implementations§
impl !Freeze for LmdbBlobStore
impl RefUnwindSafe for LmdbBlobStore
impl Send for LmdbBlobStore
impl Sync for LmdbBlobStore
impl Unpin for LmdbBlobStore
impl UnsafeUnpin for LmdbBlobStore
impl UnwindSafe for LmdbBlobStore
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more