From: Riccardo Casatta Date: Tue, 27 Jul 2021 09:38:11 +0000 (+0200) Subject: Add flush method to Database trait X-Git-Tag: v0.11.0~8^2~2 X-Git-Url: http://internal-gitweb-vhost/script/%22https:/database/memory/enum.RpcCommands.html?a=commitdiff_plain;h=e52550cfec700380b91d893a98bd427e25c1fd0b;p=bdk Add flush method to Database trait --- diff --git a/src/database/any.rs b/src/database/any.rs index cc5fcc1c..dbdd2d09 100644 --- a/src/database/any.rs +++ b/src/database/any.rs @@ -233,6 +233,10 @@ impl Database for AnyDatabase { fn increment_last_index(&mut self, keychain: KeychainKind) -> Result { 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 { diff --git a/src/database/keyvalue.rs b/src/database/keyvalue.rs index 9978497d..2da92f22 100644 --- a/src/database/keyvalue.rs +++ b/src/database/keyvalue.rs @@ -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 { diff --git a/src/database/memory.rs b/src/database/memory.rs index df56ef63..c42518db 100644 --- a/src/database/memory.rs +++ b/src/database/memory.rs @@ -419,6 +419,10 @@ impl Database for MemoryDatabase { Ok(*value) } + + fn flush(&mut self) -> Result<(), Error> { + Ok(()) + } } impl BatchDatabase for MemoryDatabase { diff --git a/src/database/mod.rs b/src/database/mod.rs index 217153fd..38c6d3bd 100644 --- a/src/database/mod.rs +++ b/src/database/mod.rs @@ -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; + + /// 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