1use serde::Deserialize;
13
14pub const XHTTP_CONFIG_KEY: &str = "XHttp";
16
17#[derive(Debug, Deserialize, Clone)]
28#[serde(default)]
29pub struct XHttpConfig {
30 #[serde(rename = "Timeout")]
32 pub timeout: String,
33
34 #[serde(rename = "DialTimeout")]
36 pub dial_timeout: String,
37
38 #[serde(rename = "DialKeepAlive")]
40 pub dial_keep_alive: String,
41
42 #[serde(rename = "PoolMaxIdlePerHost")]
44 pub pool_max_idle_per_host: usize,
45}
46
47impl Default for XHttpConfig {
48 fn default() -> Self {
49 Self {
50 timeout: "30s".into(),
51 dial_timeout: "10s".into(),
52 dial_keep_alive: "30s".into(),
53 pool_max_idle_per_host: 10,
54 }
55 }
56}
57
58pub(crate) fn load_config() -> XHttpConfig {
60 crate::xconfig::parse_config::<XHttpConfig>(XHTTP_CONFIG_KEY).unwrap_or_default()
61}