1use crate::Environment;
2use std::collections::HashMap;
3use std::time::Duration;
4
5#[derive(Debug, Clone)]
6pub struct ClientConfig {
7 pub base_url: String,
8 pub api_key: Option<String>,
9 pub token: Option<String>,
10 pub username: Option<String>,
11 pub password: Option<String>,
12 pub timeout: Duration,
13 pub max_retries: u32,
14 pub custom_headers: HashMap<String, String>,
15 pub user_agent: String,
16}
17impl Default for ClientConfig {
18 fn default() -> Self {
19 Self {
20 base_url: Environment::default().url().to_string(),
21 api_key: None,
22 token: None,
23 username: None,
24 password: None,
25 timeout: Duration::from_secs(60),
26 max_retries: 3,
27 custom_headers: HashMap::new(),
28 user_agent: "Api Rust SDK".to_string(),
29 }
30 }
31}