arangors_graph_exporter/client/
config.rs

1#[derive(Debug)]
2pub struct ClientConfig {
3    pub n_retries: u32,
4    pub tls_cert: Option<String>,
5    pub use_tls: bool,
6}
7
8impl ClientConfig {
9    pub fn builder() -> ClientConfigBuilder {
10        ClientConfigBuilder::new()
11    }
12}
13
14pub struct ClientConfigBuilder {
15    use_tls: bool,
16    tls_cert: Option<String>,
17    n_retries: Option<u32>,
18}
19
20impl Default for ClientConfigBuilder {
21    fn default() -> Self {
22        Self::new()
23    }
24}
25
26impl ClientConfigBuilder {
27    pub fn new() -> ClientConfigBuilder {
28        ClientConfigBuilder {
29            n_retries: None,
30            tls_cert: None,
31            use_tls: false,
32        }
33    }
34
35    pub fn n_retries(mut self, n: u32) -> ClientConfigBuilder {
36        self.n_retries = Some(n);
37        self
38    }
39
40    pub fn tls_cert_opt(mut self, cert: Option<String>) -> ClientConfigBuilder {
41        self.tls_cert = cert;
42        self
43    }
44
45    pub fn use_tls(mut self, use_tls: bool) -> ClientConfigBuilder {
46        self.use_tls = use_tls;
47        self
48    }
49
50    pub fn build(self) -> ClientConfig {
51        ClientConfig {
52            n_retries: self.n_retries.unwrap_or(5), // 5 retries by default
53            tls_cert: self.tls_cert,
54            use_tls: self.use_tls,
55        }
56    }
57}