commonware_storage/qmdb/sync/
mod.rs

1//! Shared sync types and functionality for authenticated databases.
2
3use crate::qmdb::sync::engine::Config;
4use commonware_codec::Encode;
5
6pub mod engine;
7pub(crate) use engine::Engine;
8
9mod error;
10pub use error::{EngineError, Error};
11
12mod gaps;
13mod journal;
14
15pub(crate) use journal::Journal;
16
17mod database;
18pub(crate) use database::Database;
19
20pub mod resolver;
21
22mod target;
23pub use target::Target;
24
25mod requests;
26
27/// Create/open a database and sync it to a target state
28pub async fn sync<DB, R>(config: Config<DB, R>) -> Result<DB, Error<R::Error, DB::Digest>>
29where
30    DB: Database,
31    DB::Op: Encode,
32    R: resolver::Resolver<Op = DB::Op, Digest = DB::Digest>,
33{
34    Engine::new(config).await?.sync().await
35}