Trait kgdata::db::Map

source ·
pub trait Map<K: AsRef<[u8]> + Eq + Hash, V: Send + Sync>: Send + Sync {
    // Required methods
    fn get<Q: ?Sized + AsRef<[u8]> + Equivalent<K>>(
        &self,
        key: &Q
    ) -> Result<Option<V>, KGDataError>;
    fn contains_key<Q: ?Sized + AsRef<[u8]> + Equivalent<K>>(
        &self,
        key: &Q
    ) -> Result<bool, KGDataError>;
    fn slice_get<Q: AsRef<[u8]> + Equivalent<K>>(
        &self,
        keys: &[Q]
    ) -> Result<Vec<Option<V>>, KGDataError>;
    fn slice_get_exist<Q: AsRef<[u8]> + Equivalent<K>>(
        &self,
        keys: &[Q]
    ) -> Result<Vec<V>, KGDataError>;
    fn slice_get_exist_as_map<Q>(
        &self,
        keys: &[Q]
    ) -> Result<HashMap<K, V>, KGDataError>
       where Q: AsRef<[u8]> + Into<K> + Equivalent<K> + Clone;
    fn iter_get<I: IntoIterator<Item = Q>, Q>(
        &self,
        keys: I
    ) -> Result<Vec<Option<V>>, KGDataError>
       where Q: AsRef<[u8]> + Equivalent<K>;
    fn iter_get_exist<I: IntoIterator<Item = Q>, Q>(
        &self,
        keys: I
    ) -> Result<Vec<V>, KGDataError>
       where Q: AsRef<[u8]> + Equivalent<K>;
    fn iter_get_exist_as_map<I: IntoIterator<Item = Q>, Q>(
        &self,
        keys: I
    ) -> Result<HashMap<K, V>, KGDataError>
       where Q: AsRef<[u8]> + Equivalent<K> + Into<K> + Clone;
    fn par_slice_get<Q: AsRef<[u8]> + Sync + Send + Equivalent<K>>(
        &self,
        keys: &[Q]
    ) -> Result<Vec<Option<V>>, KGDataError>;
    fn par_slice_get_exist<Q: AsRef<[u8]> + Sync + Send + Equivalent<K>>(
        &self,
        keys: &[Q]
    ) -> Result<Vec<V>, KGDataError>;
    fn par_slice_get_exist_as_map<Q>(
        &self,
        keys: &[Q]
    ) -> Result<HashMap<K, V>, KGDataError>
       where K: Sync + Send,
             Q: AsRef<[u8]> + Into<K> + Sync + Send + Equivalent<K> + Clone;
}
Expand description

An union interface for our RocksDB (local and remote)

Required Methods§

source

fn get<Q: ?Sized + AsRef<[u8]> + Equivalent<K>>( &self, key: &Q ) -> Result<Option<V>, KGDataError>

Get a key

source

fn contains_key<Q: ?Sized + AsRef<[u8]> + Equivalent<K>>( &self, key: &Q ) -> Result<bool, KGDataError>

Check if a key exists

source

fn slice_get<Q: AsRef<[u8]> + Equivalent<K>>( &self, keys: &[Q] ) -> Result<Vec<Option<V>>, KGDataError>

Get multiple keys

source

fn slice_get_exist<Q: AsRef<[u8]> + Equivalent<K>>( &self, keys: &[Q] ) -> Result<Vec<V>, KGDataError>

Get existing keys – error if any key does not exist

source

fn slice_get_exist_as_map<Q>( &self, keys: &[Q] ) -> Result<HashMap<K, V>, KGDataError>
where Q: AsRef<[u8]> + Into<K> + Equivalent<K> + Clone,

Get existing keys as a map – error if any key does not exist

source

fn iter_get<I: IntoIterator<Item = Q>, Q>( &self, keys: I ) -> Result<Vec<Option<V>>, KGDataError>
where Q: AsRef<[u8]> + Equivalent<K>,

source

fn iter_get_exist<I: IntoIterator<Item = Q>, Q>( &self, keys: I ) -> Result<Vec<V>, KGDataError>
where Q: AsRef<[u8]> + Equivalent<K>,

source

fn iter_get_exist_as_map<I: IntoIterator<Item = Q>, Q>( &self, keys: I ) -> Result<HashMap<K, V>, KGDataError>
where Q: AsRef<[u8]> + Equivalent<K> + Into<K> + Clone,

source

fn par_slice_get<Q: AsRef<[u8]> + Sync + Send + Equivalent<K>>( &self, keys: &[Q] ) -> Result<Vec<Option<V>>, KGDataError>

Get multiple keys in parallel

source

fn par_slice_get_exist<Q: AsRef<[u8]> + Sync + Send + Equivalent<K>>( &self, keys: &[Q] ) -> Result<Vec<V>, KGDataError>

source

fn par_slice_get_exist_as_map<Q>( &self, keys: &[Q] ) -> Result<HashMap<K, V>, KGDataError>
where K: Sync + Send, Q: AsRef<[u8]> + Into<K> + Sync + Send + Equivalent<K> + Clone,

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<K: AsRef<[u8]> + Eq + Hash, V: Send + Sync> Map<K, V> for ReadonlyRocksDBDict<K, V>

source§

impl<K: AsRef<[u8]> + Eq + Hash, V: Send + Sync, S: Client> Map<K, V> for BaseRemoteRocksDBDict<K, V, S>