mod api; mod auth; mod config; mod srp; use api::{ApiClient, LABEL_INBOX}; #[tokio::main] async fn main() { let config = match config::Config::load() { Ok(c) => c, Err(e) => { eprintln!("Failed to load bridge.toml: {}", e); std::process::exit(1); } }; let client = match auth::build_client() { Ok(c) => c, Err(e) => { eprintln!("Failed to build HTTP client: {}", e); std::process::exit(1); } }; let session = match auth::authenticate(&client, &config.proton).await { Ok(s) => s, Err(e) => { eprintln!("Authentication failed: {}", e); std::process::exit(1); } }; println!("Session UID: {}", session.uid); // Step 3 smoke-test: list the first page of inbox messages. let api = ApiClient::new(&client, &session); match api.list_messages(LABEL_INBOX, 0, 10).await { Ok((messages, total)) => { println!("\nInbox ({total} total):"); for m in &messages { println!( " [{:>5}] {:50} — {}", if m.unread == 1 { "UNREAD" } else { " read" }, m.subject, m.sender.address, ); } } Err(e) => eprintln!("list_messages failed: {}", e), } }