pub mod config;
#[doc(inline)]
pub use super::{Error, Result};
use crate::{
backend::{context::BackendContextBuilder, BackendBuilder},
maildir::MaildirContextBuilder,
sync::{hash::SyncHash, SyncBuilder},
};
pub struct AccountSyncBuilder;
impl AccountSyncBuilder {
pub fn try_new<R: BackendContextBuilder + SyncHash + 'static>(
right_builder: BackendBuilder<R>,
) -> Result<SyncBuilder<MaildirContextBuilder, R>> {
let left_ctx_builder = right_builder
.ctx_builder
.try_to_sync_cache_builder(&right_builder.account_config)?;
let left_builder =
BackendBuilder::new(right_builder.account_config.clone(), left_ctx_builder);
let sync_builder = SyncBuilder::new(left_builder, right_builder);
Ok(sync_builder)
}
}