Trait tetcore_database::Database[][src]

pub trait Database<H: Clone>: Send + Sync {
    fn get(&self, col: ColumnId, key: &[u8]) -> Option<Vec<u8>>;
fn lookup(&self, hash: &H) -> Option<Vec<u8>>; fn commit(&self, transaction: Transaction<H>) -> Result<()> { ... }
fn commit_ref<'a>(
        &self,
        transaction: &mut dyn Iterator<Item = ChangeRef<'a, H>>
    ) -> Result<()> { ... }
fn with_get(&self, col: ColumnId, key: &[u8], f: &mut dyn FnMut(&[u8])) { ... }
fn set(&self, col: ColumnId, key: &[u8], value: &[u8]) -> Result<()> { ... }
fn remove(&self, col: ColumnId, key: &[u8]) -> Result<()> { ... }
fn with_lookup(&self, hash: &H, f: &mut dyn FnMut(&[u8])) { ... }
fn store(&self, hash: &H, preimage: &[u8]) -> Result<()> { ... }
fn release(&self, hash: &H) -> Result<()> { ... } }

Required methods

fn get(&self, col: ColumnId, key: &[u8]) -> Option<Vec<u8>>[src]

Retrieve the value previously stored against key or None if key is not currently in the database.

fn lookup(&self, hash: &H) -> Option<Vec<u8>>[src]

Retrieve the first preimage previously stored for hash or None if no preimage is currently stored.

Loading content...

Provided methods

fn commit(&self, transaction: Transaction<H>) -> Result<()>[src]

Commit the transaction to the database atomically. Any further calls to get or lookup will reflect the new state.

fn commit_ref<'a>(
    &self,
    transaction: &mut dyn Iterator<Item = ChangeRef<'a, H>>
) -> Result<()>
[src]

Commit the transaction to the database atomically. Any further calls to get or lookup will reflect the new state.

fn with_get(&self, col: ColumnId, key: &[u8], f: &mut dyn FnMut(&[u8]))[src]

Call f with the value previously stored against key.

This may be faster than get since it doesn’t allocate. Use with_get helper function if you need f to return a value from f

fn set(&self, col: ColumnId, key: &[u8], value: &[u8]) -> Result<()>[src]

Set the value of key in col to value, replacing anything that is there currently.

fn remove(&self, col: ColumnId, key: &[u8]) -> Result<()>[src]

Remove the value of key in col.

fn with_lookup(&self, hash: &H, f: &mut dyn FnMut(&[u8]))[src]

Call f with the preimage stored for hash and return the result, or None if no preimage is currently stored.

This may be faster than lookup since it doesn’t allocate. Use with_lookup helper function if you need f to return a value from f

fn store(&self, hash: &H, preimage: &[u8]) -> Result<()>[src]

Store the preimage of hash into the database, so that it may be looked up later with Database::lookup. This may be called multiple times, but Database::lookup but subsequent calls will ignore preimage and simply increase the number of references on hash.

fn release(&self, hash: &H) -> Result<()>[src]

Release the preimage of hash from the database. An equal number of these to the number of corresponding stores must have been given before it is legal for Database::lookup to be unable to provide the preimage.

Loading content...

Trait Implementations

impl<H> Debug for dyn Database<H>[src]

Implementors

impl<H> Database<H> for MemDb<H> where
    H: Clone + Send + Sync + Eq + PartialEq + Default + Hash
[src]

Loading content...