pub mod account;
pub mod backend;
pub mod email;
pub mod folder;
pub mod sender;
#[doc(inline)]
pub use backend::Backend;
#[doc(inline)]
pub use sender::Sender;
#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error(transparent)]
AccountConfigError(#[from] account::config::Error),
#[error(transparent)]
OAuth2ConfigError(#[from] account::config::oauth2::Error),
#[error(transparent)]
PasswdConfigError(#[from] account::config::passwd::Error),
#[error(transparent)]
AccountSyncError(#[from] account::sync::Error),
#[cfg(feature = "pgp-native")]
#[error(transparent)]
NativePgpConfigError(#[from] account::config::pgp::native::Error),
#[error(transparent)]
MessageError(#[from] email::message::Error),
#[error(transparent)]
TplError(#[from] email::message::template::Error),
#[cfg(feature = "imap-backend")]
#[error(transparent)]
ImapEnvelopeError(#[from] email::envelope::imap::Error),
#[error(transparent)]
FlagError(#[from] email::envelope::flag::Error),
#[cfg(feature = "imap-backend")]
#[error(transparent)]
ImapFlagError(#[from] email::envelope::flag::imap::Error),
#[error(transparent)]
MaildirFlagError(#[from] email::envelope::flag::maildir::Error),
#[error(transparent)]
EmailSyncError(#[from] email::sync::Error),
#[error(transparent)]
BackendError(#[from] backend::Error),
#[cfg(feature = "imap-backend")]
#[error(transparent)]
ImapError(#[from] backend::imap::Error),
#[cfg(feature = "imap-backend")]
#[error(transparent)]
ImapConfigError(#[from] backend::imap::config::Error),
#[error(transparent)]
MaildirError(#[from] backend::maildir::Error),
#[cfg(feature = "notmuch-backend")]
#[error(transparent)]
NotmuchError(#[from] backend::notmuch::Error),
#[error(transparent)]
SenderError(#[from] sender::Error),
#[error(transparent)]
SendmailError(#[from] sender::sendmail::Error),
#[cfg(feature = "smtp-sender")]
#[error(transparent)]
SmtpError(#[from] sender::smtp::Error),
#[cfg(feature = "smtp-sender")]
#[error(transparent)]
SmtpConfigError(#[from] sender::smtp::config::Error),
#[error(transparent)]
SqliteError(#[from] rusqlite::Error),
}
pub type Result<T> = std::result::Result<T, Error>;