pub mod auth;
mod error;
pub mod graph;
pub mod mcp;
#[cfg(test)]
pub(crate) mod test_support;
pub mod unsubscribe;
pub use auth::AuthClient;
pub use error::ClientError;
pub use graph::{GraphClient, MailFolder, Outgoing};
pub use unsubscribe::{UnsubscribeMethod, mailto_subject, parse_unsubscribe};
pub mod cursor;
pub use cursor::{Cursor, CursorError};
pub(crate) fn config_dir() -> Result<std::path::PathBuf, ClientError> {
#[cfg(test)]
if let Some(base) = test_support::base_dir_override() {
return Ok(base);
}
pidge_core::paths::config_dir().ok_or(ClientError::NoConfigDir)
}
#[cfg(test)]
mod tests {
#[test]
fn config_dir_is_pidge_core_paths_config_dir() {
assert_eq!(
super::config_dir().ok(),
pidge_core::paths::config_dir(),
"client stores must share the one XDG-style config dir"
);
}
}