pub struct DBMap<K, V> {
pub db: Arc<Database>,
pub opts: ReadWriteOptions,
/* private fields */
}Expand description
An interface to a rocksDB database, keyed by a columnfamily
Fields§
§db: Arc<Database>§opts: ReadWriteOptionsImplementations§
Source§impl<K, V> DBMap<K, V>
impl<K, V> DBMap<K, V>
Sourcepub fn reopen(
db: &Arc<Database>,
opt_cf: Option<&str>,
rw_options: &ReadWriteOptions,
skip_metrics_reporting: bool,
) -> Result<Self, TypedStoreError>
pub fn reopen( db: &Arc<Database>, opt_cf: Option<&str>, rw_options: &ReadWriteOptions, skip_metrics_reporting: bool, ) -> Result<Self, TypedStoreError>
Reopens an open database as a typed map operating under a specific column family. if no column family is passed, the default column family is used.
When skip_metrics_reporting is true, no periodic per-column-family
metrics task is spawned; use this for deprecated tables and for large
sets of rarely-touched column families.
pub fn cf_name(&self) -> &str
pub fn batch(&self) -> DBBatch
Sourcepub fn flush(&self) -> Result<(), TypedStoreError>
pub fn flush(&self) -> Result<(), TypedStoreError>
Flush the memtable of this table’s column family to SST files on disk.
Sourcepub fn flush_all(&self) -> Result<(), TypedStoreError>
pub fn flush_all(&self) -> Result<(), TypedStoreError>
Flush the memtables of every column family of the database to SST files on disk.
pub fn compact_range<J: Serialize>( &self, start: &J, end: &J, ) -> Result<(), TypedStoreError>
pub fn compact_range_raw( &self, cf_name: &str, start: Vec<u8>, end: Vec<u8>, ) -> Result<(), TypedStoreError>
pub fn checkpoint_db(&self, path: &Path) -> Result<(), TypedStoreError>
pub fn table_summary(&self) -> Result<TableSummary>
Sourcepub fn safe_iter_with_prefix<P>(&self, prefix: &P) -> DbIterator<'_, (K, V)>
pub fn safe_iter_with_prefix<P>(&self, prefix: &P) -> DbIterator<'_, (K, V)>
Forward iterator over every entry whose key begins with prefix.
prefix is serialized with be_fix_int_ser and must form a prefix of
the column family’s key encoding — typically the leading field(s) of a
tuple key. This avoids constructing artificial maximum keys to bound a
composite-key scan.
Sourcepub fn safe_iter_with_prefix_from<P, C>(
&self,
prefix: &P,
lower: Bound<&C>,
) -> DbIterator<'_, (K, V)>
pub fn safe_iter_with_prefix_from<P, C>( &self, prefix: &P, lower: Bound<&C>, ) -> DbIterator<'_, (K, V)>
Forward iterator over entries whose key begins with prefix, starting
at the position lower gives within the prefix rather than at the
first key under the prefix.
The bound value is not a full key: it is the entire remainder of
the key that follows prefix (all the trailing fields of a tuple key,
not a partial suffix). Both prefix and the bound value are
serialized with be_fix_int_ser and concatenated, mirroring how a
composite key is encoded. Included starts the scan at
prefix ++ lower, Excluded strictly after that position (also when
no such key exists), and Unbounded at the first key under the
prefix. The scan bounds never leave the prefix (excluding the
maximum remainder yields an empty scan, not the next prefix’s keys),
so a paginated scan can resume from a cursor without an artificial
maximum key for the upper bound.
Sourcepub fn safe_iter_with_prefix_after<P, C>(
&self,
prefix: &P,
cursor: Option<&C>,
) -> DbIterator<'_, (K, V)>
pub fn safe_iter_with_prefix_after<P, C>( &self, prefix: &P, cursor: Option<&C>, ) -> DbIterator<'_, (K, V)>
Forward iterator over entries whose key begins with prefix, resuming
strictly after cursor, or from the first key under the prefix when
there is no cursor. cursor is the remainder of the key after
prefix, as for Self::safe_iter_with_prefix_from.
Sourcepub fn safe_iter_with_prefix_reversed<P>(
&self,
prefix: &P,
) -> DbIterator<'_, (K, V)>
pub fn safe_iter_with_prefix_reversed<P>( &self, prefix: &P, ) -> DbIterator<'_, (K, V)>
Reverse counterpart of Self::safe_iter_with_prefix: the matching
entries in descending key order (e.g. for “latest entry under a
prefix”).
Trait Implementations§
Source§impl<'a, K, V> Map<'a, K, V> for DBMap<K, V>
impl<'a, K, V> Map<'a, K, V> for DBMap<K, V>
Source§fn schedule_delete_all(&self) -> Result<(), TypedStoreError>
fn schedule_delete_all(&self) -> Result<(), TypedStoreError>
Writes a range delete tombstone to delete all entries in the db map. The effect of this write is visible immediately, i.e. you won’t see old values when you do a lookup or scan.
Source§fn safe_range_iter_reversed(
&'a self,
range: impl RangeBounds<K>,
) -> DbIterator<'a, (K, V)>
fn safe_range_iter_reversed( &'a self, range: impl RangeBounds<K>, ) -> DbIterator<'a, (K, V)>
Both directions derive their bounds from the same
iterator_bounds_with_range, so they are guaranteed to cover the
identical set of keys regardless of the bound inclusivity.
Source§fn multi_get<J>(
&self,
keys: impl IntoIterator<Item = J>,
) -> Result<Vec<Option<V>>, TypedStoreError>where
J: Borrow<K>,
fn multi_get<J>(
&self,
keys: impl IntoIterator<Item = J>,
) -> Result<Vec<Option<V>>, TypedStoreError>where
J: Borrow<K>,
Returns a vector of values corresponding to the keys provided.
Source§fn multi_insert<J, U>(
&self,
key_val_pairs: impl IntoIterator<Item = (J, U)>,
) -> Result<(), Self::Error>
fn multi_insert<J, U>( &self, key_val_pairs: impl IntoIterator<Item = (J, U)>, ) -> Result<(), Self::Error>
Convenience method for batch insertion
Source§fn multi_remove<J>(
&self,
keys: impl IntoIterator<Item = J>,
) -> Result<(), Self::Error>where
J: Borrow<K>,
fn multi_remove<J>(
&self,
keys: impl IntoIterator<Item = J>,
) -> Result<(), Self::Error>where
J: Borrow<K>,
Convenience method for batch removal
Source§fn try_catch_up_with_primary(&self) -> Result<(), Self::Error>
fn try_catch_up_with_primary(&self) -> Result<(), Self::Error>
Try to catch up with primary when running as secondary
type Error = TypedStoreError
Source§fn contains_key(&self, key: &K) -> Result<bool, TypedStoreError>
fn contains_key(&self, key: &K) -> Result<bool, TypedStoreError>
Source§fn multi_contains_keys<J>(
&self,
keys: impl IntoIterator<Item = J>,
) -> Result<Vec<bool>, Self::Error>where
J: Borrow<K>,
fn multi_contains_keys<J>(
&self,
keys: impl IntoIterator<Item = J>,
) -> Result<Vec<bool>, Self::Error>where
J: Borrow<K>,
Source§fn get(&self, key: &K) -> Result<Option<V>, TypedStoreError>
fn get(&self, key: &K) -> Result<Option<V>, TypedStoreError>
Source§fn insert(&self, key: &K, value: &V) -> Result<(), TypedStoreError>
fn insert(&self, key: &K, value: &V) -> Result<(), TypedStoreError>
Source§fn remove(&self, key: &K) -> Result<(), TypedStoreError>
fn remove(&self, key: &K) -> Result<(), TypedStoreError>
Source§fn safe_iter(&'a self) -> DbIterator<'a, (K, V)>
fn safe_iter(&'a self) -> DbIterator<'a, (K, V)>
Source§fn safe_iter_with_bounds(
&'a self,
lower_bound: Option<K>,
upper_bound: Option<K>,
) -> DbIterator<'a, (K, V)>
fn safe_iter_with_bounds( &'a self, lower_bound: Option<K>, upper_bound: Option<K>, ) -> DbIterator<'a, (K, V)>
[lower_bound, upper_bound) —
the lower bound is inclusive, the upper bound exclusive, and a None
bound leaves that side unbounded. Equivalent to
safe_range_iter(lower_bound..upper_bound).Source§fn safe_range_iter(
&'a self,
range: impl RangeBounds<K>,
) -> DbIterator<'a, (K, V)>
fn safe_range_iter( &'a self, range: impl RangeBounds<K>, ) -> DbIterator<'a, (K, V)>
range, honoring the range’s own bound
inclusivity (e.g. lo..hi excludes hi, lo..=hi includes it).Auto Trait Implementations§
impl<K, V> !RefUnwindSafe for DBMap<K, V>
impl<K, V> !UnwindSafe for DBMap<K, V>
impl<K, V> Freeze for DBMap<K, V>
impl<K, V> Send for DBMap<K, V>
impl<K, V> Sync for DBMap<K, V>
impl<K, V> Unpin for DBMap<K, V>
impl<K, V> UnsafeUnpin for DBMap<K, V>
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a Request§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.