reth_db::transaction

Trait DbTx

Source
pub trait DbTx: Send + Sync {
    type Cursor<T: Table>: DbCursorRO<T> + Send + Sync;
    type DupCursor<T: DupSort>: DbDupCursorRO<T> + DbCursorRO<T> + Send + Sync;

    // Required methods
    fn get<T>(
        &self,
        key: <T as Table>::Key,
    ) -> Result<Option<<T as Table>::Value>, DatabaseError>
       where T: Table;
    fn get_by_encoded_key<T>(
        &self,
        key: &<<T as Table>::Key as Encode>::Encoded,
    ) -> Result<Option<<T as Table>::Value>, DatabaseError>
       where T: Table;
    fn commit(self) -> Result<bool, DatabaseError>;
    fn abort(self);
    fn cursor_read<T>(&self) -> Result<Self::Cursor<T>, DatabaseError>
       where T: Table;
    fn cursor_dup_read<T>(&self) -> Result<Self::DupCursor<T>, DatabaseError>
       where T: DupSort;
    fn entries<T>(&self) -> Result<usize, DatabaseError>
       where T: Table;
    fn disable_long_read_transaction_safety(&mut self);
}
Expand description

Read only transaction

Required Associated Types§

Source

type Cursor<T: Table>: DbCursorRO<T> + Send + Sync

Cursor type for this read-only transaction

Source

type DupCursor<T: DupSort>: DbDupCursorRO<T> + DbCursorRO<T> + Send + Sync

DupCursor type for this read-only transaction

Required Methods§

Source

fn get<T>( &self, key: <T as Table>::Key, ) -> Result<Option<<T as Table>::Value>, DatabaseError>
where T: Table,

Get value by an owned key

Source

fn get_by_encoded_key<T>( &self, key: &<<T as Table>::Key as Encode>::Encoded, ) -> Result<Option<<T as Table>::Value>, DatabaseError>
where T: Table,

Get value by a reference to the encoded key, especially useful for “raw” keys that encode to themselves like Address and B256. Doesn’t need to clone a reference key like get.

Source

fn commit(self) -> Result<bool, DatabaseError>

Commit for read only transaction will consume and free transaction and allows freeing of memory pages

Source

fn abort(self)

Aborts transaction

Source

fn cursor_read<T>(&self) -> Result<Self::Cursor<T>, DatabaseError>
where T: Table,

Iterate over read only values in table.

Source

fn cursor_dup_read<T>(&self) -> Result<Self::DupCursor<T>, DatabaseError>
where T: DupSort,

Iterate over read only values in dup sorted table.

Source

fn entries<T>(&self) -> Result<usize, DatabaseError>
where T: Table,

Returns number of entries in the table.

Source

fn disable_long_read_transaction_safety(&mut self)

Disables long-lived read transaction safety guarantees.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl DbTx for TxMock

Source§

impl<K: TransactionKind> DbTx for Tx<K>

Available on crate feature mdbx only.
Source§

type Cursor<T: Table> = Cursor<K, T>

Source§

type DupCursor<T: DupSort> = Cursor<K, T>