email/account/sync/
mod.rs1pub mod config;
10
11#[doc(inline)]
12pub use super::{Error, Result};
13use crate::{
14 backend::{context::BackendContextBuilder, BackendBuilder},
15 maildir::MaildirContextBuilder,
16 sync::{hash::SyncHash, SyncBuilder},
17};
18
19pub struct AccountSyncBuilder;
25
26impl AccountSyncBuilder {
27 pub fn try_new<R: BackendContextBuilder + SyncHash + 'static>(
29 right_builder: BackendBuilder<R>,
30 ) -> Result<SyncBuilder<MaildirContextBuilder, R>> {
31 let left_ctx_builder = right_builder
32 .ctx_builder
33 .try_to_sync_cache_builder(&right_builder.account_config)?;
34 let left_builder =
35 BackendBuilder::new(right_builder.account_config.clone(), left_ctx_builder);
36 let sync_builder = SyncBuilder::new(left_builder, right_builder);
37
38 Ok(sync_builder)
39 }
40}