Skip to main content

tracedb_sdk/
config.rs

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 client_id: Option<String>,
13    pub client_secret: Option<String>,
14    pub timeout: Duration,
15    pub max_retries: u32,
16    pub custom_headers: HashMap<String, String>,
17    pub user_agent: String,
18}
19impl Default for ClientConfig {
20    fn default() -> Self {
21        Self {
22            base_url: Environment::default().url().to_string(),
23            api_key: None,
24            token: None,
25            username: None,
26            password: None,
27            client_id: None,
28            client_secret: None,
29            timeout: Duration::from_secs(60),
30            max_retries: 3,
31            custom_headers: HashMap::from([
32                ("X-Fern-Language".to_string(), "Rust".to_string()),
33                ("X-Fern-SDK-Name".to_string(), "trace_db_api".to_string()),
34                ("X-Fern-SDK-Version".to_string(), "0.1.1".to_string()),
35            ]),
36            user_agent: "Api Rust SDK".to_string(),
37        }
38    }
39}