pub trait Txn {
Show 26 methods fn get<'kr, K, V, C, KRef>(
        &self,
        db: &Db<K, V, C>,
        key: KRef
    ) -> Result<Option<V::AlignedRef<'_>>>
    where
        K: ?Sized + Storable + 'kr,
        V: ?Sized + Storable,
        C: Constraint,
        KRef: StorableRef<'kr, K>
; fn new_cursor<K, V, C>(&self, db: &Db<K, V, C>) -> Result<Cursor<K, V, C>>
    where
        K: ?Sized + Storable,
        V: ?Sized + Storable,
        C: Constraint
; fn cursor_get_current_value_count<K, V>(
        &self,
        cursor: &Cursor<K, V, KeysDuplicate>
    ) -> Result<usize>
    where
        K: ?Sized + Storable,
        V: ?Sized + Storable
; fn cursor_set_first<K, V, C>(&self, cursor: &Cursor<K, V, C>) -> Result<bool>
    where
        K: ?Sized + Storable,
        V: ?Sized + Storable,
        C: Constraint
; fn cursor_set_first_get_pair<K, V, C>(
        &self,
        cursor: &Cursor<K, V, C>
    ) -> Result<Option<(K::AlignedRef<'_>, V::AlignedRef<'_>)>>
    where
        K: ?Sized + Storable,
        V: ?Sized + Storable,
        C: Constraint
; fn cursor_set_last<K, V, C>(&self, cursor: &Cursor<K, V, C>) -> Result<bool>
    where
        K: ?Sized + Storable,
        V: ?Sized + Storable,
        C: Constraint
; fn cursor_set_last_get_pair<K, V, C>(
        &self,
        cursor: &Cursor<K, V, C>
    ) -> Result<Option<(K::AlignedRef<'_>, V::AlignedRef<'_>)>>
    where
        K: ?Sized + Storable,
        V: ?Sized + Storable,
        C: Constraint
; fn cursor_get_current_key<K, V, C>(
        &self,
        cursor: &Cursor<K, V, C>
    ) -> Result<Option<K::AlignedRef<'_>>>
    where
        K: ?Sized + Storable,
        V: ?Sized + Storable,
        C: Constraint
; fn cursor_get_current_value<K, V, C>(
        &self,
        cursor: &Cursor<K, V, C>
    ) -> Result<Option<V::AlignedRef<'_>>>
    where
        K: ?Sized + Storable,
        V: ?Sized + Storable,
        C: Constraint
; fn cursor_get_current_pair<K, V, C>(
        &self,
        cursor: &Cursor<K, V, C>
    ) -> Result<Option<(K::AlignedRef<'_>, V::AlignedRef<'_>)>>
    where
        K: ?Sized + Storable,
        V: ?Sized + Storable,
        C: Constraint
; fn cursor_set_key<'kr, K, V, C, KRef>(
        &self,
        cursor: &Cursor<K, V, C>,
        key: KRef
    ) -> Result<bool>
    where
        K: ?Sized + Storable + 'kr,
        V: ?Sized + Storable,
        C: Constraint,
        KRef: StorableRef<'kr, K>
; fn cursor_set_key_get_value<'kr, K, V, C, KRef>(
        &self,
        cursor: &Cursor<K, V, C>,
        key: KRef
    ) -> Result<Option<V::AlignedRef<'_>>>
    where
        K: ?Sized + Storable + 'kr,
        V: ?Sized + Storable,
        C: Constraint,
        KRef: StorableRef<'kr, K>
; fn cursor_search_key_get_pair<'kr, K, V, C, KRef>(
        &self,
        cursor: &Cursor<K, V, C>,
        key: KRef
    ) -> Result<Option<(K::AlignedRef<'_>, V::AlignedRef<'_>)>>
    where
        K: ?Sized + Storable + 'kr,
        V: ?Sized + Storable,
        C: Constraint,
        KRef: StorableRef<'kr, K>
; fn cursor_set_next_get_pair<K, V, C>(
        &self,
        cursor: &Cursor<K, V, C>
    ) -> Result<Option<(K::AlignedRef<'_>, V::AlignedRef<'_>)>>
    where
        K: ?Sized + Storable,
        V: ?Sized + Storable,
        C: Constraint
; fn cursor_set_prev_get_pair<K, V, C>(
        &self,
        cursor: &Cursor<K, V, C>
    ) -> Result<Option<(K::AlignedRef<'_>, V::AlignedRef<'_>)>>
    where
        K: ?Sized + Storable,
        V: ?Sized + Storable,
        C: Constraint
; fn cursor_set_next_key_get_pair<K, V, C>(
        &self,
        cursor: &Cursor<K, V, C>
    ) -> Result<Option<(K::AlignedRef<'_>, V::AlignedRef<'_>)>>
    where
        K: ?Sized + Storable,
        V: ?Sized + Storable,
        C: Constraint
; fn cursor_set_prev_key_get_pair<K, V, C>(
        &self,
        cursor: &Cursor<K, V, C>
    ) -> Result<Option<(K::AlignedRef<'_>, V::AlignedRef<'_>)>>
    where
        K: ?Sized + Storable,
        V: ?Sized + Storable,
        C: Constraint
; fn cursor_set_first_value<K, V>(
        &self,
        cursor: &Cursor<K, V, KeysDuplicate>
    ) -> Result<bool>
    where
        K: ?Sized + Storable,
        V: ?Sized + Storable
; fn cursor_set_first_value_get_value<K, V>(
        &self,
        cursor: &Cursor<K, V, KeysDuplicate>
    ) -> Result<Option<V::AlignedRef<'_>>>
    where
        K: ?Sized + Storable,
        V: ?Sized + Storable
; fn cursor_set_last_value<K, V>(
        &self,
        cursor: &Cursor<K, V, KeysDuplicate>
    ) -> Result<bool>
    where
        K: ?Sized + Storable,
        V: ?Sized + Storable
; fn cursor_set_last_value_get_value<K, V>(
        &self,
        cursor: &Cursor<K, V, KeysDuplicate>
    ) -> Result<Option<V::AlignedRef<'_>>>
    where
        K: ?Sized + Storable,
        V: ?Sized + Storable
; fn cursor_set_pair<'kr, 'vr, K, V, KRef, VRef>(
        &self,
        cursor: &Cursor<K, V, KeysDuplicate>,
        key: KRef,
        value: VRef
    ) -> Result<bool>
    where
        K: ?Sized + Storable + 'kr,
        V: ?Sized + Storable + 'vr,
        KRef: StorableRef<'kr, K>,
        VRef: StorableRef<'vr, V>
; fn cursor_set_key_search_value_get_value<'kr, 'vr, K, V, KRef, VRef>(
        &self,
        cursor: &Cursor<K, V, KeysDuplicate>,
        key: KRef,
        value: VRef
    ) -> Result<Option<V::AlignedRef<'_>>>
    where
        K: ?Sized + Storable + 'kr,
        V: ?Sized + Storable + 'vr,
        KRef: StorableRef<'kr, K>,
        VRef: StorableRef<'vr, V>
; fn cursor_set_next_value_get_value<K, V>(
        &self,
        cursor: &Cursor<K, V, KeysDuplicate>
    ) -> Result<Option<V::AlignedRef<'_>>>
    where
        K: ?Sized + Storable,
        V: ?Sized + Storable
; fn cursor_set_prev_value_get_value<K, V>(
        &self,
        cursor: &Cursor<K, V, KeysDuplicate>
    ) -> Result<Option<V::AlignedRef<'_>>>
    where
        K: ?Sized + Storable,
        V: ?Sized + Storable
; fn get_owned<'a, 'kr, K, V, C, KRef>(
        &'a self,
        db: &Db<K, V, C>,
        key: KRef
    ) -> Result<Option<<V as ToOwned>::Owned>>
    where
        K: ?Sized + Storable + 'kr,
        V: ?Sized + Storable + ToOwned,
        C: Constraint,
        KRef: StorableRef<'kr, K>
, { ... }
}
Expand description

Read-write or read-only transaction

This trait provides the methods for read-access to databases. The simplest interface is provided by Txn::get, which returns a reference to the stored value for a given key (or None if the key does not exist). If an owned value is desired, use Txn::get_owned instead, which automatically converts the reference (e.g. &str) into an owned value (e.g. String) using GenericCow::into_owned.

Txn::get and Txn::get_owned will only retrieve the first value in case of duplicate keys. For more sophisticated access, use Txn::new_cursor to create a new Cursor which then can be used with one of the cursor methods in the Txn trait (or the TxnRw struct in case of write access, respectively).

Required Methods

Get reference to value in database

Create a new cursor

Get number of values for current cursor position

Set cursor to first entry in database

Set cursor to first entry in database and get pair

Set cursor to last entry in database

Set cursor to last entry in database and get pair

Get key at current cursor position

Get value at current cursor position

Get key-value pair at current cursor position

Set cursor to key

Set cursor to key and get value

Set cursor to key or next greater key if not existent and get pair

Move cursor to next entry in database and get pair

Move cursor to previous entry in database and get pair

Move cursor to first value of next key and get pair

Move cursor to last value of previous key and get pair

Move cursor to first value of current key

Move cursor to first value of current key and get value

Move cursor to last value of current key

Move cursor to last value of current key and get value

Set cursor to key-value pair

Set cursor to key and value or next greater value if not existent and get value

Move cursor to next value of current key and get value

Move cursor to next value of current key and get value

Provided Methods

Get owned value from database

Implementors