Struct redb::Table

source ·
pub struct Table<'txn, K: Key + 'static, V: Value + 'static> { /* private fields */ }
Expand description

A table containing key-value mappings

Implementations§

source§

impl<'txn, K: Key + 'static, V: Value + 'static> Table<'txn, K, V>

source

pub fn pop_first( &mut self ) -> Result<Option<(AccessGuard<'_, K>, AccessGuard<'_, V>)>>

Removes and returns the first key-value pair in the table

source

pub fn pop_last( &mut self ) -> Result<Option<(AccessGuard<'_, K>, AccessGuard<'_, V>)>>

Removes and returns the last key-value pair in the table

source

pub fn extract_if<F: for<'f> FnMut(K::SelfType<'f>, V::SelfType<'f>) -> bool>( &mut self, predicate: F ) -> Result<ExtractIf<'_, K, V, F>>

Applies predicate to all key-value pairs. All entries for which predicate evaluates to true are returned in an iterator, and those which are read from the iterator are removed

Note: values not read from the iterator will not be removed

source

pub fn extract_from_if<'a, KR, F: for<'f> FnMut(K::SelfType<'f>, V::SelfType<'f>) -> bool>( &mut self, range: impl RangeBounds<KR> + 'a, predicate: F ) -> Result<ExtractIf<'_, K, V, F>>
where KR: Borrow<K::SelfType<'a>> + 'a,

Applies predicate to all key-value pairs in the specified range. All entries for which predicate evaluates to true are returned in an iterator, and those which are read from the iterator are removed

Note: values not read from the iterator will not be removed

source

pub fn retain<F: for<'f> FnMut(K::SelfType<'f>, V::SelfType<'f>) -> bool>( &mut self, predicate: F ) -> Result

Applies predicate to all key-value pairs. All entries for which predicate evaluates to false are removed.

source

pub fn retain_in<'a, KR, F: for<'f> FnMut(K::SelfType<'f>, V::SelfType<'f>) -> bool>( &mut self, range: impl RangeBounds<KR> + 'a, predicate: F ) -> Result
where KR: Borrow<K::SelfType<'a>> + 'a,

Applies predicate to all key-value pairs in the range start..end. All entries for which predicate evaluates to false are removed.

source

pub fn insert<'k, 'v>( &mut self, key: impl Borrow<K::SelfType<'k>>, value: impl Borrow<V::SelfType<'v>> ) -> Result<Option<AccessGuard<'_, V>>>

Insert mapping of the given key to the given value

If key is already present it is replaced

Returns the old value, if the key was present in the table, otherwise None is returned

source

pub fn remove<'a>( &mut self, key: impl Borrow<K::SelfType<'a>> ) -> Result<Option<AccessGuard<'_, V>>>

Removes the given key

Returns the old value, if the key was present in the table

source§

impl<'txn, K: Key + 'static, V: MutInPlaceValue + 'static> Table<'txn, K, V>

source

pub fn insert_reserve<'a>( &mut self, key: impl Borrow<K::SelfType<'a>>, value_length: u32 ) -> Result<AccessGuardMut<'_, V>>

Reserve space to insert a key-value pair

If key is already present it is replaced

The returned reference will have length equal to value_length

Trait Implementations§

source§

impl<K: Key + 'static, V: Value + 'static> Debug for Table<'_, K, V>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'txn, K: Key + 'static, V: Value + 'static> Drop for Table<'txn, K, V>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl<'txn, K: Key + 'static, V: Value + 'static> ReadableTable<K, V> for Table<'txn, K, V>

source§

fn get<'a>( &self, key: impl Borrow<K::SelfType<'a>> ) -> Result<Option<AccessGuard<'_, V>>>

Returns the value corresponding to the given key
source§

fn range<'a, KR>( &self, range: impl RangeBounds<KR> + 'a ) -> Result<Range<'_, K, V>>
where KR: Borrow<K::SelfType<'a>> + 'a,

Returns a double-ended iterator over a range of elements in the table Read more
source§

fn first(&self) -> Result<Option<(AccessGuard<'_, K>, AccessGuard<'_, V>)>>

Returns the first key-value pair in the table, if it exists
source§

fn last(&self) -> Result<Option<(AccessGuard<'_, K>, AccessGuard<'_, V>)>>

Returns the last key-value pair in the table, if it exists
source§

fn iter(&self) -> Result<Range<'_, K, V>>

Returns a double-ended iterator over all elements in the table
source§

impl<'txn, K: Key + 'static, V: Value + 'static> ReadableTableMetadata for Table<'txn, K, V>

source§

fn stats(&self) -> Result<TableStats>

Retrieves information about storage usage for the table
source§

fn len(&self) -> Result<u64>

Returns the number of entries in the table
source§

fn is_empty(&self) -> Result<bool>

Returns true if the table is empty
source§

impl<K: Key + 'static, V: Value + 'static> TableHandle for Table<'_, K, V>

source§

fn name(&self) -> &str

Auto Trait Implementations§

§

impl<'txn, K, V> Freeze for Table<'txn, K, V>

§

impl<'txn, K, V> !RefUnwindSafe for Table<'txn, K, V>

§

impl<'txn, K, V> Send for Table<'txn, K, V>
where K: Send, V: Send,

§

impl<'txn, K, V> Sync for Table<'txn, K, V>
where K: Sync, V: Sync,

§

impl<'txn, K, V> Unpin for Table<'txn, K, V>
where K: Unpin, V: Unpin,

§

impl<'txn, K, V> !UnwindSafe for Table<'txn, K, V>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.