Trait Topic

Source
pub trait Topic {
    // Required methods
    fn get_env(&self) -> &Env;
    fn get_db(&self) -> Database;

    // Provided methods
    fn lag(&self) -> Result<u64, Error> { ... }
    fn inc(
        &self,
        txn: &mut RwTransaction<'_>,
        key: &[u8],
        delta: u64,
    ) -> Result<(), Error> { ... }
    fn replace(
        &self,
        txn: &mut RwTransaction<'_>,
        key: &[u8],
        value: u64,
    ) -> Result<(), Error> { ... }
    fn get_tail<TXN>(db: Database, txn: &TXN) -> Result<(u64, u64), Error>
       where TXN: Transaction { ... }
    fn get_value<TXN>(db: Database, txn: &TXN, key: &[u8]) -> Result<u64, Error>
       where TXN: Transaction { ... }
}

Required Methods§

Source

fn get_env(&self) -> &Env

Source

fn get_db(&self) -> Database

Provided Methods§

Source

fn lag(&self) -> Result<u64, Error>

Source

fn inc( &self, txn: &mut RwTransaction<'_>, key: &[u8], delta: u64, ) -> Result<(), Error>

Source

fn replace( &self, txn: &mut RwTransaction<'_>, key: &[u8], value: u64, ) -> Result<(), Error>

Source

fn get_tail<TXN>(db: Database, txn: &TXN) -> Result<(u64, u64), Error>
where TXN: Transaction,

Source

fn get_value<TXN>(db: Database, txn: &TXN, key: &[u8]) -> Result<u64, Error>
where TXN: Transaction,

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<'env> Topic for Consumer<'env>

Source§

impl<'env> Topic for Producer<'env>