Add flush method to Database trait

This commit is contained in:
Riccardo Casatta 2021-07-27 11:38:11 +02:00
parent 5cdc5fb58a
commit e52550cfec
No known key found for this signature in database
GPG Key ID: FD986A969E450397
4 changed files with 15 additions and 0 deletions

View File

@ -233,6 +233,10 @@ impl Database for AnyDatabase {
fn increment_last_index(&mut self, keychain: KeychainKind) -> Result<u32, Error> {
impl_inner_method!(AnyDatabase, self, increment_last_index, keychain)
}
fn flush(&mut self) -> Result<(), Error> {
impl_inner_method!(AnyDatabase, self, flush)
}
}
impl BatchOperations for AnyBatch {

View File

@ -367,6 +367,10 @@ impl Database for Tree {
Ok(val)
})
}
fn flush(&mut self) -> Result<(), Error> {
Ok(Tree::flush(self).map(|_| ())?)
}
}
impl BatchDatabase for Tree {

View File

@ -419,6 +419,10 @@ impl Database for MemoryDatabase {
Ok(*value)
}
fn flush(&mut self) -> Result<(), Error> {
Ok(())
}
}
impl BatchDatabase for MemoryDatabase {

View File

@ -134,6 +134,9 @@ pub trait Database: BatchOperations {
///
/// It should insert and return `0` if not present in the database
fn increment_last_index(&mut self, keychain: KeychainKind) -> Result<u32, Error>;
/// Force changes to be written to disk, returning the number of bytes written
fn flush(&mut self) -> Result<(), Error>;
}
/// Trait for a database that supports batch operations