|
|
|
@ -26,21 +26,26 @@ impl RocksDBOptions { |
|
|
|
|
|
|
|
|
|
pub fn increase_parallelism(&self, parallelism: i32) { |
|
|
|
|
unsafe { |
|
|
|
|
rocksdb_ffi::rocksdb_options_increase_parallelism(self.inner, parallelism); |
|
|
|
|
rocksdb_ffi::rocksdb_options_increase_parallelism( |
|
|
|
|
self.inner, parallelism); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
pub fn optimize_level_style_compaction(&self, memtable_memory_budget: i32) { |
|
|
|
|
pub fn optimize_level_style_compaction(&self, |
|
|
|
|
memtable_memory_budget: i32) { |
|
|
|
|
unsafe { |
|
|
|
|
rocksdb_ffi::rocksdb_options_optimize_level_style_compaction(self.inner, memtable_memory_budget); |
|
|
|
|
rocksdb_ffi::rocksdb_options_optimize_level_style_compaction( |
|
|
|
|
self.inner, memtable_memory_budget); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
pub fn create_if_missing(&self, create_if_missing: bool) { |
|
|
|
|
unsafe { |
|
|
|
|
match create_if_missing { |
|
|
|
|
true => rocksdb_ffi::rocksdb_options_set_create_if_missing(self.inner, 1), |
|
|
|
|
false => rocksdb_ffi::rocksdb_options_set_create_if_missing(self.inner, 0), |
|
|
|
|
true => rocksdb_ffi::rocksdb_options_set_create_if_missing( |
|
|
|
|
self.inner, 1), |
|
|
|
|
false => rocksdb_ffi::rocksdb_options_set_create_if_missing( |
|
|
|
|
self.inner, 0), |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -116,7 +121,8 @@ impl RocksDB { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
pub fn get<'a>(&self, key: &[u8]) -> RocksDBResult<'a, RocksDBVector, String> { |
|
|
|
|
pub fn get<'a>(&self, key: &[u8]) -> |
|
|
|
|
RocksDBResult<'a, RocksDBVector, String> { |
|
|
|
|
unsafe { |
|
|
|
|
let readopts = rocksdb_ffi::rocksdb_readoptions_create(); |
|
|
|
|
let rocksdb_ffi::RocksDBReadOptions(read_opts_ptr) = readopts; |
|
|
|
@ -130,8 +136,8 @@ impl RocksDB { |
|
|
|
|
let val_len: size_t = 0; |
|
|
|
|
let val_len_ptr = &val_len as *const size_t; |
|
|
|
|
let err = 0 as *mut i8; |
|
|
|
|
let val = rocksdb_ffi::rocksdb_get(self.inner, readopts, key.as_ptr(), |
|
|
|
|
key.len() as size_t, val_len_ptr, err) as *mut u8; |
|
|
|
|
let val = rocksdb_ffi::rocksdb_get(self.inner, readopts, |
|
|
|
|
key.as_ptr(), key.len() as size_t, val_len_ptr, err) as *mut u8; |
|
|
|
|
if err.is_not_null() { |
|
|
|
|
let cs = CString::new(err as *const i8, true); |
|
|
|
|
match cs.as_str() { |
|
|
|
@ -228,8 +234,10 @@ impl <'a,T,E> RocksDBResult<'a,T,E> { |
|
|
|
|
pub fn unwrap(self) -> T { |
|
|
|
|
match self { |
|
|
|
|
RocksDBResult::Some(x) => x, |
|
|
|
|
RocksDBResult::None => panic!("Attempted unwrap on RocksDBResult::None"), |
|
|
|
|
RocksDBResult::Error(_) => panic!("Attempted unwrap on RocksDBResult::Error"), |
|
|
|
|
RocksDBResult::None => |
|
|
|
|
panic!("Attempted unwrap on RocksDBResult::None"), |
|
|
|
|
RocksDBResult::Error(_) => |
|
|
|
|
panic!("Attempted unwrap on RocksDBResult::Error"), |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|