Browse Source

updated to the last database integration logic of persy

merge-requests/107/merge^2
Tglman 4 years ago
parent
commit
67f1a21726
  1. 16
      src/database/abstraction/persy.rs

16
src/database/abstraction/persy.rs

@ -396,6 +396,16 @@ impl Tree for PersyTree { @@ -396,6 +396,16 @@ impl Tree for PersyTree {
Ok(())
}
#[tracing::instrument(skip(self, iter))]
fn insert_batch<'a>(&self, iter: &mut dyn Iterator<Item = (Vec<u8>, Vec<u8>)>) -> Result<()> {
//TODO: evaluate if use instead a single big transaction
for (key, value) in iter {
self.insert(&key, &value)?;
}
Ok(())
}
fn remove(&self, key: &[u8]) -> Result<()> {
self.write_cache
.write()
@ -404,7 +414,7 @@ impl Tree for PersyTree { @@ -404,7 +414,7 @@ impl Tree for PersyTree {
Ok(())
}
fn iter<'a>(&'a self) -> Box<dyn Iterator<Item = (Vec<u8>, Vec<u8>)> + Send + 'a> {
fn iter<'a>(&'a self) -> Box<dyn Iterator<Item = (Vec<u8>, Vec<u8>)> + 'a> {
let iter = self.persy.range::<ByteVec, ByteVec, _>(&self.name, ..);
match iter {
Ok(iter) => {
@ -427,7 +437,7 @@ impl Tree for PersyTree { @@ -427,7 +437,7 @@ impl Tree for PersyTree {
&'a self,
from: &[u8],
backwards: bool,
) -> Box<dyn Iterator<Item = (Vec<u8>, Vec<u8>)> + Send + 'a> {
) -> Box<dyn Iterator<Item = (Vec<u8>, Vec<u8>)> + 'a> {
let range = if backwards {
self.persy
.range::<ByteVec, ByteVec, _>(&self.name, ..ByteVec(from.to_owned()))
@ -471,7 +481,7 @@ impl Tree for PersyTree { @@ -471,7 +481,7 @@ impl Tree for PersyTree {
fn scan_prefix<'a>(
&'a self,
prefix: Vec<u8>,
) -> Box<dyn Iterator<Item = (Vec<u8>, Vec<u8>)> + Send + 'a> {
) -> Box<dyn Iterator<Item = (Vec<u8>, Vec<u8>)> + 'a> {
let range_prefix = ByteVec(prefix.to_owned());
let range = self
.persy

Loading…
Cancel
Save