Merge pull request #78 from kaedroho/writebatch-len-and-is_empty

Implement len() and is_empty() methods on WriteBatch
master
Tyler Neely 8 years ago committed by GitHub
commit a53055838c
  1. 16
      src/rocksdb.rs

@ -795,6 +795,16 @@ impl Writable for DB {
} }
} }
impl WriteBatch {
pub fn len(&self) -> usize {
unsafe { rocksdb_ffi::rocksdb_writebatch_count(self.inner) as usize }
}
pub fn is_empty(&self) -> bool {
self.len() == 0
}
}
impl Default for WriteBatch { impl Default for WriteBatch {
fn default() -> WriteBatch { fn default() -> WriteBatch {
WriteBatch { WriteBatch {
@ -1022,7 +1032,11 @@ fn writebatch_works() {
// test put // test put
let batch = WriteBatch::default(); let batch = WriteBatch::default();
assert!(db.get(b"k1").unwrap().is_none()); assert!(db.get(b"k1").unwrap().is_none());
assert_eq!(batch.len(), 0);
assert!(batch.is_empty());
let _ = batch.put(b"k1", b"v1111"); let _ = batch.put(b"k1", b"v1111");
assert_eq!(batch.len(), 1);
assert!(!batch.is_empty());
assert!(db.get(b"k1").unwrap().is_none()); assert!(db.get(b"k1").unwrap().is_none());
let p = db.write(batch); let p = db.write(batch);
assert!(p.is_ok()); assert!(p.is_ok());
@ -1033,6 +1047,8 @@ fn writebatch_works() {
// test delete // test delete
let batch = WriteBatch::default(); let batch = WriteBatch::default();
let _ = batch.delete(b"k1"); let _ = batch.delete(b"k1");
assert_eq!(batch.len(), 1);
assert!(!batch.is_empty());
let p = db.write(batch); let p = db.write(batch);
assert!(p.is_ok()); assert!(p.is_ok());
assert!(db.get(b"k1").unwrap().is_none()); assert!(db.get(b"k1").unwrap().is_none());

Loading…
Cancel
Save