Struct kaspa_database::prelude::CachedDbAccess
source · pub struct CachedDbAccess<TKey, TData, S = RandomState>where
TKey: Clone + Hash + Eq + Send + Sync,
TData: Clone + Send + Sync,{ /* private fields */ }Expand description
A concurrent DB store access with typed caching.
Implementations§
source§impl<TKey, TData, S> CachedDbAccess<TKey, TData, S>where
TKey: Clone + Hash + Eq + Send + Sync,
TData: Clone + Send + Sync,
S: BuildHasher + Default,
impl<TKey, TData, S> CachedDbAccess<TKey, TData, S>where TKey: Clone + Hash + Eq + Send + Sync, TData: Clone + Send + Sync, S: BuildHasher + Default,
pub fn new(db: Arc<DB>, cache_size: u64, prefix: Vec<u8>) -> Self
pub fn read_from_cache(&self, key: TKey) -> Option<TData>where TKey: Copy + AsRef<[u8]>,
pub fn has(&self, key: TKey) -> Result<bool, StoreError>where TKey: Clone + AsRef<[u8]>,
pub fn read(&self, key: TKey) -> Result<TData, StoreError>where TKey: Clone + AsRef<[u8]> + ToString, TData: DeserializeOwned,
pub fn iterator( &self ) -> impl Iterator<Item = Result<(Box<[u8]>, TData), Box<dyn Error>>> + '_where TKey: Clone + AsRef<[u8]>, TData: DeserializeOwned,
pub fn write( &self, writer: impl DbWriter, key: TKey, data: TData ) -> Result<(), StoreError>where TKey: Clone + AsRef<[u8]>, TData: Serialize,
pub fn write_many( &self, writer: impl DbWriter, iter: &mut impl Iterator<Item = (TKey, TData)> + Clone ) -> Result<(), StoreError>where TKey: Clone + AsRef<[u8]>, TData: Serialize,
sourcepub fn write_many_without_cache(
&self,
writer: impl DbWriter,
iter: &mut impl Iterator<Item = (TKey, TData)>
) -> Result<(), StoreError>where
TKey: Clone + AsRef<[u8]>,
TData: Serialize,
pub fn write_many_without_cache( &self, writer: impl DbWriter, iter: &mut impl Iterator<Item = (TKey, TData)> ) -> Result<(), StoreError>where TKey: Clone + AsRef<[u8]>, TData: Serialize,
Write directly from an iterator and do not cache any data. NOTE: this action also clears the cache
pub fn delete(&self, writer: impl DbWriter, key: TKey) -> Result<(), StoreError>where TKey: Clone + AsRef<[u8]>,
pub fn delete_many( &self, writer: impl DbWriter, key_iter: &mut impl Iterator<Item = TKey> + Clone ) -> Result<(), StoreError>where TKey: Clone + AsRef<[u8]>,
pub fn delete_all(&self, writer: impl DbWriter) -> Result<(), StoreError>where TKey: Clone + AsRef<[u8]>,
sourcepub fn seek_iterator(
&self,
bucket: Option<&[u8]>,
seek_from: Option<TKey>,
limit: usize,
skip_first: bool
) -> impl Iterator<Item = Result<(Box<[u8]>, TData), Box<dyn Error>>> + '_where
TKey: Clone + AsRef<[u8]>,
TData: DeserializeOwned,
pub fn seek_iterator( &self, bucket: Option<&[u8]>, seek_from: Option<TKey>, limit: usize, skip_first: bool ) -> impl Iterator<Item = Result<(Box<[u8]>, TData), Box<dyn Error>>> + '_where TKey: Clone + AsRef<[u8]>, TData: DeserializeOwned,
A dynamic iterator that can iterate through a specific prefix / bucket, or from a certain start point.
Trait Implementations§
source§impl<TKey, TData, S: Clone> Clone for CachedDbAccess<TKey, TData, S>where
TKey: Clone + Hash + Eq + Send + Sync + Clone,
TData: Clone + Send + Sync + Clone,
impl<TKey, TData, S: Clone> Clone for CachedDbAccess<TKey, TData, S>where TKey: Clone + Hash + Eq + Send + Sync + Clone, TData: Clone + Send + Sync + Clone,
source§fn clone(&self) -> CachedDbAccess<TKey, TData, S>
fn clone(&self) -> CachedDbAccess<TKey, TData, S>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read more