Skip to main content

binance/spot/http/
config.rs

1use reqwest::header::HeaderMap;
2
3use crate::SensitiveString;
4
5#[derive(Debug, Clone)]
6pub struct PublicConfig {
7    pub base_url: String,
8    pub headers: Option<HeaderMap>,
9}
10
11impl PublicConfig {
12    pub fn new(base_url: impl Into<String>) -> Self {
13        Self {
14            base_url: base_url.into(),
15            headers: None,
16        }
17    }
18
19    pub fn headers(mut self, headers: Option<HeaderMap>) -> Self {
20        if let Some(headers) = headers {
21            self.headers
22                .get_or_insert_with(HeaderMap::new)
23                .extend(headers);
24        }
25
26        self
27    }
28}
29
30#[derive(Debug, Clone)]
31pub struct PrivateConfig {
32    pub base_url: String,
33    pub api_key: SensitiveString,
34    pub api_secret: SensitiveString,
35    pub headers: Option<HeaderMap>,
36}
37
38impl PrivateConfig {
39    pub fn new(
40        base_url: impl Into<String>,
41        api_key: SensitiveString,
42        api_secret: SensitiveString,
43    ) -> Self {
44        Self {
45            base_url: base_url.into(),
46            api_key,
47            api_secret,
48            headers: None,
49        }
50    }
51
52    pub fn headers(mut self, headers: Option<HeaderMap>) -> Self {
53        if let Some(headers) = headers {
54            self.headers
55                .get_or_insert_with(HeaderMap::new)
56                .extend(headers);
57        }
58
59        self
60    }
61}