protonmail_client/
config.rs1use crate::error::{Error, Result};
4use std::env;
5
6#[derive(Debug, Clone)]
8pub struct ImapConfig {
9 pub host: String,
10 pub port: u16,
11 pub username: String,
12 pub password: String,
13}
14
15impl ImapConfig {
16 pub fn from_env() -> Result<Self> {
31 dotenvy::dotenv().ok();
32
33 Ok(Self {
34 host: env::var("IMAP_HOST").unwrap_or_else(|_| "127.0.0.1".to_string()),
35 port: env::var("IMAP_PORT")
36 .unwrap_or_else(|_| "1143".to_string())
37 .parse()
38 .map_err(|e| Error::Config(format!("Invalid IMAP_PORT: {e}")))?,
39 username: env::var("IMAP_USERNAME")
40 .map_err(|_| Error::Config("IMAP_USERNAME not set".into()))?,
41 password: env::var("IMAP_PASSWORD")
42 .map_err(|_| Error::Config("IMAP_PASSWORD not set".into()))?,
43 })
44 }
45}