Add some doc-comments and tiny refactoring (#424)

master
Oleksandr Anyshchenko 5 years ago committed by GitHub
parent 8c59ac01f5
commit 334b4652b6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      src/backup.rs
  2. 16
      src/db.rs
  3. 116
      src/db_options.rs
  4. 6
      src/merge_operator.rs
  5. 2
      src/slice_transform.rs
  6. 24
      src/snapshot.rs

@ -85,7 +85,7 @@ impl BackupEngine {
/// * `wal_dir` - A path to the wal directory /// * `wal_dir` - A path to the wal directory
/// * `opts` - Restore options /// * `opts` - Restore options
/// ///
/// # Example /// # Examples
/// ///
/// ```ignore /// ```ignore
/// use rocksdb::backup::{BackupEngine, BackupEngineOptions}; /// use rocksdb::backup::{BackupEngine, BackupEngineOptions};

@ -959,8 +959,8 @@ impl DB {
/// Retrieves a RocksDB property by name. /// Retrieves a RocksDB property by name.
/// ///
/// For a full list of properties, see /// Full list of properties could be find
/// https://github.com/facebook/rocksdb/blob/08809f5e6cd9cc4bc3958dd4d59457ae78c76660/include/rocksdb/db.h#L428-L634 /// [here](https://github.com/facebook/rocksdb/blob/08809f5e6cd9cc4bc3958dd4d59457ae78c76660/include/rocksdb/db.h#L428-L634).
pub fn property_value(&self, name: &str) -> Result<Option<String>, Error> { pub fn property_value(&self, name: &str) -> Result<Option<String>, Error> {
let prop_name = match CString::new(name) { let prop_name = match CString::new(name) {
Ok(c) => c, Ok(c) => c,
@ -995,8 +995,8 @@ impl DB {
/// Retrieves a RocksDB property by name, for a specific column family. /// Retrieves a RocksDB property by name, for a specific column family.
/// ///
/// For a full list of properties, see /// Full list of properties could be find
/// https://github.com/facebook/rocksdb/blob/08809f5e6cd9cc4bc3958dd4d59457ae78c76660/include/rocksdb/db.h#L428-L634 /// [here](https://github.com/facebook/rocksdb/blob/08809f5e6cd9cc4bc3958dd4d59457ae78c76660/include/rocksdb/db.h#L428-L634).
pub fn property_value_cf( pub fn property_value_cf(
&self, &self,
cf: &ColumnFamily, cf: &ColumnFamily,
@ -1035,8 +1035,8 @@ impl DB {
/// Retrieves a RocksDB property and casts it to an integer. /// Retrieves a RocksDB property and casts it to an integer.
/// ///
/// For a full list of properties that return int values, see /// Full list of properties that return int values could be find
/// https://github.com/facebook/rocksdb/blob/08809f5e6cd9cc4bc3958dd4d59457ae78c76660/include/rocksdb/db.h#L654-L689 /// [here](https://github.com/facebook/rocksdb/blob/08809f5e6cd9cc4bc3958dd4d59457ae78c76660/include/rocksdb/db.h#L654-L689).
pub fn property_int_value(&self, name: &str) -> Result<Option<u64>, Error> { pub fn property_int_value(&self, name: &str) -> Result<Option<u64>, Error> {
match self.property_value(name) { match self.property_value(name) {
Ok(Some(value)) => match value.parse::<u64>() { Ok(Some(value)) => match value.parse::<u64>() {
@ -1053,8 +1053,8 @@ impl DB {
/// Retrieves a RocksDB property for a specific column family and casts it to an integer. /// Retrieves a RocksDB property for a specific column family and casts it to an integer.
/// ///
/// For a full list of properties that return int values, see /// Full list of properties that return int values could be find
/// https://github.com/facebook/rocksdb/blob/08809f5e6cd9cc4bc3958dd4d59457ae78c76660/include/rocksdb/db.h#L654-L689 /// [here](https://github.com/facebook/rocksdb/blob/08809f5e6cd9cc4bc3958dd4d59457ae78c76660/include/rocksdb/db.h#L654-L689).
pub fn property_int_value_cf( pub fn property_int_value_cf(
&self, &self,
cf: &ColumnFamily, cf: &ColumnFamily,

@ -29,13 +29,14 @@ use crate::{
Snapshot, Snapshot,
}; };
pub fn new_cache(capacity: size_t) -> *mut ffi::rocksdb_cache_t { fn new_cache(capacity: size_t) -> *mut ffi::rocksdb_cache_t {
unsafe { ffi::rocksdb_cache_create_lru(capacity) } unsafe { ffi::rocksdb_cache_create_lru(capacity) }
} }
/// Database-wide options around performance and behavior. /// Database-wide options around performance and behavior.
/// ///
/// Please read [the official tuning guide](https://github.com/facebook/rocksdb/wiki/RocksDB-Tuning-Guide), and most importantly, measure performance under realistic workloads with realistic hardware. /// Please read the official tuning [guide](https://github.com/facebook/rocksdb/wiki/RocksDB-Tuning-Guide)
/// and most importantly, measure performance under realistic workloads with realistic hardware.
/// ///
/// # Examples /// # Examples
/// ///
@ -273,7 +274,7 @@ impl BlockBasedOptions {
/// Defines the index type to be used for SS-table lookups. /// Defines the index type to be used for SS-table lookups.
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::{BlockBasedOptions, BlockBasedIndexType, Options}; /// use rocksdb::{BlockBasedOptions, BlockBasedIndexType, Options};
@ -321,7 +322,9 @@ impl BlockBasedOptions {
} }
/// Format version, reserved for backward compatibility. /// Format version, reserved for backward compatibility.
/// See https://github.com/facebook/rocksdb/blob/f059c7d9b96300091e07429a60f4ad55dac84859/include/rocksdb/table.h#L249-L274. ///
/// See full [list](https://github.com/facebook/rocksdb/blob/f059c7d9b96300091e07429a60f4ad55dac84859/include/rocksdb/table.h#L249-L274)
/// of the supported versions.
/// ///
/// Default: 2. /// Default: 2.
pub fn set_format_version(&mut self, version: i32) { pub fn set_format_version(&mut self, version: i32) {
@ -363,7 +366,7 @@ impl BlockBasedOptions {
/// valid only when using `DataBlockIndexType::BinaryAndHash`. /// valid only when using `DataBlockIndexType::BinaryAndHash`.
/// ///
/// Default: `BinarySearch` /// Default: `BinarySearch`
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::{BlockBasedOptions, DataBlockIndexType, Options}; /// use rocksdb::{BlockBasedOptions, DataBlockIndexType, Options};
@ -407,7 +410,7 @@ impl Options {
/// cores. You almost definitely want to call this function if your system is /// cores. You almost definitely want to call this function if your system is
/// bottlenecked by RocksDB. /// bottlenecked by RocksDB.
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -475,7 +478,7 @@ impl Options {
/// ///
/// Default: `false` /// Default: `false`
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -494,7 +497,7 @@ impl Options {
/// ///
/// Default: `false` /// Default: `false`
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -516,7 +519,7 @@ impl Options {
/// Default: `DBCompressionType::Snappy` (`DBCompressionType::None` if /// Default: `DBCompressionType::Snappy` (`DBCompressionType::None` if
/// snappy feature is not enabled). /// snappy feature is not enabled).
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::{Options, DBCompressionType}; /// use rocksdb::{Options, DBCompressionType};
@ -538,7 +541,7 @@ impl Options {
/// each level of the database; these override the value specified in /// each level of the database; these override the value specified in
/// the previous field 'compression'. /// the previous field 'compression'.
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::{Options, DBCompressionType}; /// use rocksdb::{Options, DBCompressionType};
@ -580,7 +583,7 @@ impl Options {
/// ///
/// Default: `0` /// Default: `0`
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -742,7 +745,7 @@ impl Options {
/// ///
/// Default: `false` /// Default: `false`
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -767,7 +770,7 @@ impl Options {
/// ///
/// Default: `-1` /// Default: `-1`
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -788,7 +791,7 @@ impl Options {
/// ///
/// Default: `false` /// Default: `false`
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -814,7 +817,7 @@ impl Options {
/// ///
/// This option applies to table files /// This option applies to table files
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -837,7 +840,7 @@ impl Options {
/// ///
/// Default: true /// Default: true
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -861,7 +864,7 @@ impl Options {
/// ///
/// Default: false /// Default: false
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -885,7 +888,7 @@ impl Options {
/// ///
/// Default: false /// Default: false
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -921,7 +924,7 @@ impl Options {
/// ///
/// Default: true /// Default: true
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// #[allow(deprecated)] /// #[allow(deprecated)]
@ -943,7 +946,7 @@ impl Options {
/// ///
/// Default: `6` /// Default: `6`
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -967,7 +970,7 @@ impl Options {
/// ///
/// Default: `1` /// Default: `1`
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -991,7 +994,7 @@ impl Options {
/// ///
/// Default: `2` /// Default: `2`
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -1022,7 +1025,7 @@ impl Options {
/// ///
/// Dynamically changeable through SetOptions() API /// Dynamically changeable through SetOptions() API
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -1047,7 +1050,7 @@ impl Options {
/// ///
/// Default: 0 (disabled) /// Default: 0 (disabled)
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -1074,7 +1077,7 @@ impl Options {
/// ///
/// Dynamically changeable through SetOptions() API /// Dynamically changeable through SetOptions() API
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -1090,7 +1093,7 @@ impl Options {
/// Default: `10` /// Default: `10`
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -1108,7 +1111,7 @@ impl Options {
/// The older manifest file be deleted. /// The older manifest file be deleted.
/// The default value is MAX_INT so that roll-over does not take place. /// The default value is MAX_INT so that roll-over does not take place.
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -1135,7 +1138,7 @@ impl Options {
/// ///
/// Dynamically changeable through SetOptions() API /// Dynamically changeable through SetOptions() API
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -1159,7 +1162,7 @@ impl Options {
/// ///
/// Default: `1` /// Default: `1`
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -1180,7 +1183,7 @@ impl Options {
/// ///
/// Dynamically changeable through SetOptions() API /// Dynamically changeable through SetOptions() API
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -1202,7 +1205,7 @@ impl Options {
/// ///
/// Dynamically changeable through SetOptions() API /// Dynamically changeable through SetOptions() API
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -1222,7 +1225,7 @@ impl Options {
/// ///
/// Dynamically changeable through SetOptions() API /// Dynamically changeable through SetOptions() API
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -1240,7 +1243,7 @@ impl Options {
/// ///
/// Default: DBCompactionStyle::Level /// Default: DBCompactionStyle::Level
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::{Options, DBCompactionStyle}; /// use rocksdb::{Options, DBCompactionStyle};
@ -1267,7 +1270,7 @@ impl Options {
/// ///
/// Default: `1` /// Default: `1`
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -1298,7 +1301,7 @@ impl Options {
/// ///
/// Default: `1` /// Default: `1`
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -1319,7 +1322,7 @@ impl Options {
/// ///
/// Dynamically changeable through SetOptions() API /// Dynamically changeable through SetOptions() API
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -1364,10 +1367,10 @@ impl Options {
} }
/// Defines the underlying memtable implementation. /// Defines the underlying memtable implementation.
/// See https://github.com/facebook/rocksdb/wiki/MemTable for more information. /// See official [wiki](https://github.com/facebook/rocksdb/wiki/MemTable) for more information.
/// Defaults to using a skiplist. /// Defaults to using a skiplist.
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::{Options, MemtableFactory}; /// use rocksdb::{Options, MemtableFactory};
@ -1410,7 +1413,15 @@ impl Options {
} }
} }
/// See https://github.com/facebook/rocksdb/wiki/PlainTable-Format. // This is a factory that provides TableFactory objects.
// Default: a block-based table factory that provides a default
// implementation of TableBuilder and TableReader with default
// BlockBasedTableOptions.
/// Sets the factory as plain table.
/// See official [wiki](https://github.com/facebook/rocksdb/wiki/PlainTable-Format) for more
/// information.
///
/// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::{Options, PlainTableFactoryOptions}; /// use rocksdb::{Options, PlainTableFactoryOptions};
@ -1441,7 +1452,7 @@ impl Options {
/// ///
/// Default: `false` /// Default: `false`
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -1461,7 +1472,7 @@ impl Options {
/// ///
/// Default: `0` /// Default: `0`
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -1480,7 +1491,7 @@ impl Options {
/// ///
/// Default: DBRecoveryMode::PointInTime /// Default: DBRecoveryMode::PointInTime
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::{Options, DBRecoveryMode}; /// use rocksdb::{Options, DBRecoveryMode};
@ -1518,7 +1529,7 @@ impl Options {
/// ///
/// Default: `600` (10 mins) /// Default: `600` (10 mins)
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -1554,7 +1565,7 @@ impl Options {
/// ///
/// Default: `0` /// Default: `0`
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::{Options, SliceTransform}; /// use rocksdb::{Options, SliceTransform};
@ -1575,7 +1586,7 @@ impl Options {
/// ///
/// Default: same directory as the database /// Default: same directory as the database
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -1612,7 +1623,7 @@ impl Options {
/// ///
/// Default: false /// Default: false
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -1630,7 +1641,7 @@ impl Options {
/// ///
/// Default: false /// Default: false
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -1653,7 +1664,7 @@ impl Options {
/// ///
/// Default: false /// Default: false
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -1673,7 +1684,7 @@ impl Options {
/// ///
/// Default: disable /// Default: disable
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::Options; /// use rocksdb::Options;
@ -1718,7 +1729,7 @@ impl FlushOptions {
/// ///
/// Default: true /// Default: true
/// ///
/// # Example /// # Examples
/// ///
/// ``` /// ```
/// use rocksdb::FlushOptions; /// use rocksdb::FlushOptions;
@ -1890,7 +1901,7 @@ pub enum DataBlockIndexType {
} }
/// Defines the underlying memtable implementation. /// Defines the underlying memtable implementation.
/// See https://github.com/facebook/rocksdb/wiki/MemTable for more information. /// See official [wiki](https://github.com/facebook/rocksdb/wiki/MemTable) for more information.
pub enum MemtableFactory { pub enum MemtableFactory {
Vector, Vector,
HashSkipList { HashSkipList {
@ -1904,7 +1915,8 @@ pub enum MemtableFactory {
} }
/// Used with DBOptions::set_plain_table_factory. /// Used with DBOptions::set_plain_table_factory.
/// See https://github.com/facebook/rocksdb/wiki/PlainTable-Format. /// See official [wiki](https://github.com/facebook/rocksdb/wiki/PlainTable-Format) for more
/// information.
/// ///
/// Defaults: /// Defaults:
/// user_key_length: 0 (variable length) /// user_key_length: 0 (variable length)

@ -223,10 +223,10 @@ mod test {
} }
#[test] #[test]
fn mergetest() { fn merge_test() {
use crate::{Options, DB}; use crate::{Options, DB};
let path = "_rust_rocksdb_mergetest"; let path = "_rust_rocksdb_merge_test";
let mut opts = Options::default(); let mut opts = Options::default();
opts.create_if_missing(true); opts.create_if_missing(true);
opts.set_merge_operator("test operator", test_provided_merge, None); opts.set_merge_operator("test operator", test_provided_merge, None);
@ -331,7 +331,7 @@ mod test {
#[test] #[test]
#[allow(clippy::too_many_lines)] #[allow(clippy::too_many_lines)]
fn counting_mergetest() { fn counting_merge_test() {
use crate::{DBCompactionStyle, Options, DB}; use crate::{DBCompactionStyle, Options, DB};
use std::sync::Arc; use std::sync::Arc;
use std::thread; use std::thread;

@ -19,7 +19,7 @@ use libc::{c_char, c_void, size_t};
use crate::ffi; use crate::ffi;
/// A SliceTranform is a generic pluggable way of transforming one string /// A `SliceTransform` is a generic pluggable way of transforming one string
/// to another. Its primary use-case is in configuring rocksdb /// to another. Its primary use-case is in configuring rocksdb
/// to store prefix blooms by setting prefix_extractor in /// to store prefix blooms by setting prefix_extractor in
/// ColumnFamilyOptions. /// ColumnFamilyOptions.

@ -16,6 +16,8 @@ use crate::{ffi, ColumnFamily, DBIterator, DBRawIterator, Error, IteratorMode, R
/// A consistent view of the database at the point of creation. /// A consistent view of the database at the point of creation.
/// ///
/// # Examples
///
/// ``` /// ```
/// use rocksdb::{DB, IteratorMode, Options}; /// use rocksdb::{DB, IteratorMode, Options};
/// ///
@ -34,6 +36,7 @@ pub struct Snapshot<'a> {
} }
impl<'a> Snapshot<'a> { impl<'a> Snapshot<'a> {
/// Creates a new `Snapshot` of the database `db`.
pub fn new(db: &DB) -> Snapshot { pub fn new(db: &DB) -> Snapshot {
let snapshot = unsafe { ffi::rocksdb_create_snapshot(db.inner) }; let snapshot = unsafe { ffi::rocksdb_create_snapshot(db.inner) };
Snapshot { Snapshot {
@ -42,21 +45,27 @@ impl<'a> Snapshot<'a> {
} }
} }
/// Creates an iterator over the data in this snapshot, using the default read options.
pub fn iterator(&self, mode: IteratorMode) -> DBIterator<'a> { pub fn iterator(&self, mode: IteratorMode) -> DBIterator<'a> {
let readopts = ReadOptions::default(); let readopts = ReadOptions::default();
self.iterator_opt(mode, readopts) self.iterator_opt(mode, readopts)
} }
/// Creates an iterator over the data in this snapshot under the given column family, using
/// the default read options.
pub fn iterator_cf(&self, cf_handle: &ColumnFamily, mode: IteratorMode) -> DBIterator { pub fn iterator_cf(&self, cf_handle: &ColumnFamily, mode: IteratorMode) -> DBIterator {
let readopts = ReadOptions::default(); let readopts = ReadOptions::default();
self.iterator_cf_opt(cf_handle, readopts, mode) self.iterator_cf_opt(cf_handle, readopts, mode)
} }
/// Creates an iterator over the data in this snapshot, using the given read options.
pub fn iterator_opt(&self, mode: IteratorMode, mut readopts: ReadOptions) -> DBIterator<'a> { pub fn iterator_opt(&self, mode: IteratorMode, mut readopts: ReadOptions) -> DBIterator<'a> {
readopts.set_snapshot(self); readopts.set_snapshot(self);
DBIterator::new(self.db, readopts, mode) DBIterator::new(self.db, readopts, mode)
} }
/// Creates an iterator over the data in this snapshot under the given column family, using
/// the given read options.
pub fn iterator_cf_opt( pub fn iterator_cf_opt(
&self, &self,
cf_handle: &ColumnFamily, cf_handle: &ColumnFamily,
@ -67,25 +76,27 @@ impl<'a> Snapshot<'a> {
DBIterator::new_cf(self.db, cf_handle, readopts, mode) DBIterator::new_cf(self.db, cf_handle, readopts, mode)
} }
/// Opens a raw iterator over the data in this snapshot, using the default read options. /// Creates a raw iterator over the data in this snapshot, using the default read options.
pub fn raw_iterator(&self) -> DBRawIterator { pub fn raw_iterator(&self) -> DBRawIterator {
let readopts = ReadOptions::default(); let readopts = ReadOptions::default();
self.raw_iterator_opt(readopts) self.raw_iterator_opt(readopts)
} }
/// Opens a raw iterator over the data in this snapshot under the given column family, using the default read options. /// Creates a raw iterator over the data in this snapshot under the given column family, using
/// the default read options.
pub fn raw_iterator_cf(&self, cf_handle: &ColumnFamily) -> DBRawIterator { pub fn raw_iterator_cf(&self, cf_handle: &ColumnFamily) -> DBRawIterator {
let readopts = ReadOptions::default(); let readopts = ReadOptions::default();
self.raw_iterator_cf_opt(cf_handle, readopts) self.raw_iterator_cf_opt(cf_handle, readopts)
} }
/// Opens a raw iterator over the data in this snapshot, using the given read options. /// Creates a raw iterator over the data in this snapshot, using the given read options.
pub fn raw_iterator_opt(&self, mut readopts: ReadOptions) -> DBRawIterator { pub fn raw_iterator_opt(&self, mut readopts: ReadOptions) -> DBRawIterator {
readopts.set_snapshot(self); readopts.set_snapshot(self);
DBRawIterator::new(self.db, readopts) DBRawIterator::new(self.db, readopts)
} }
/// Opens a raw iterator over the data in this snapshot under the given column family, using the given read options. /// Creates a raw iterator over the data in this snapshot under the given column family, using
/// the given read options.
pub fn raw_iterator_cf_opt( pub fn raw_iterator_cf_opt(
&self, &self,
cf_handle: &ColumnFamily, cf_handle: &ColumnFamily,
@ -95,11 +106,14 @@ impl<'a> Snapshot<'a> {
DBRawIterator::new_cf(self.db, cf_handle, readopts) DBRawIterator::new_cf(self.db, cf_handle, readopts)
} }
/// Returns the bytes associated with a key value with default read options.
pub fn get<K: AsRef<[u8]>>(&self, key: K) -> Result<Option<Vec<u8>>, Error> { pub fn get<K: AsRef<[u8]>>(&self, key: K) -> Result<Option<Vec<u8>>, Error> {
let readopts = ReadOptions::default(); let readopts = ReadOptions::default();
self.get_opt(key, readopts) self.get_opt(key, readopts)
} }
/// Returns the bytes associated with a key value and given column family with default read
/// options.
pub fn get_cf<K: AsRef<[u8]>>( pub fn get_cf<K: AsRef<[u8]>>(
&self, &self,
cf: &ColumnFamily, cf: &ColumnFamily,
@ -109,6 +123,7 @@ impl<'a> Snapshot<'a> {
self.get_cf_opt(cf, key.as_ref(), readopts) self.get_cf_opt(cf, key.as_ref(), readopts)
} }
/// Returns the bytes associated with a key value and given read options.
pub fn get_opt<K: AsRef<[u8]>>( pub fn get_opt<K: AsRef<[u8]>>(
&self, &self,
key: K, key: K,
@ -118,6 +133,7 @@ impl<'a> Snapshot<'a> {
self.db.get_opt(key.as_ref(), &readopts) self.db.get_opt(key.as_ref(), &readopts)
} }
/// Returns the bytes associated with a key value, given column family and read options.
pub fn get_cf_opt<K: AsRef<[u8]>>( pub fn get_cf_opt<K: AsRef<[u8]>>(
&self, &self,
cf: &ColumnFamily, cf: &ColumnFamily,

Loading…
Cancel
Save