Abstract database behind generic interface and implement alternative drivers #322
1 changed files with 3 additions and 9 deletions
|
@ -22,9 +22,7 @@ impl BlockRc {
|
|||
pub(crate) fn block_incref(&self, tx: &mut db::Transaction, hash: &Hash) -> db::Result<bool> {
|
||||
let old_rc = RcEntry::parse_opt(tx.get(&self.rc, &hash)?);
|
||||
match old_rc.increment().serialize() {
|
||||
Some(x) => {
|
||||
tx.insert(&self.rc, &hash, x)?;
|
||||
}
|
||||
Some(x) => tx.insert(&self.rc, &hash, x)?,
|
||||
None => unreachable!(),
|
||||
};
|
||||
Ok(old_rc.is_zero())
|
||||
|
@ -35,12 +33,8 @@ impl BlockRc {
|
|||
pub(crate) fn block_decref(&self, tx: &mut db::Transaction, hash: &Hash) -> db::Result<bool> {
|
||||
let new_rc = RcEntry::parse_opt(tx.get(&self.rc, &hash)?).decrement();
|
||||
match new_rc.serialize() {
|
||||
Some(x) => {
|
||||
tx.insert(&self.rc, &hash, x)?;
|
||||
}
|
||||
None => {
|
||||
tx.remove(&self.rc, &hash)?;
|
||||
}
|
||||
Some(x) => tx.insert(&self.rc, &hash, x)?,
|
||||
None => tx.remove(&self.rc, &hash)?,
|
||||
};
|
||||
Ok(matches!(new_rc, RcEntry::Deletable { .. }))
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue