camel_component_http/
config.rs1#[derive(Debug, Clone, PartialEq)]
2pub struct HttpConfig {
3 pub connect_timeout_ms: u64,
4 pub response_timeout_ms: u64,
5 pub max_connections: usize,
6 pub max_body_size: usize,
7 pub max_request_body: usize,
8 pub allow_private_ips: bool,
9}
10
11impl Default for HttpConfig {
12 fn default() -> Self {
13 Self {
14 connect_timeout_ms: 5_000,
15 response_timeout_ms: 30_000,
16 max_connections: 100,
17 max_body_size: 10_485_760,
18 max_request_body: 2_097_152,
19 allow_private_ips: false,
20 }
21 }
22}
23
24impl HttpConfig {
25 pub fn with_connect_timeout_ms(mut self, ms: u64) -> Self {
26 self.connect_timeout_ms = ms;
27 self
28 }
29 pub fn with_response_timeout_ms(mut self, ms: u64) -> Self {
30 self.response_timeout_ms = ms;
31 self
32 }
33 pub fn with_max_connections(mut self, n: usize) -> Self {
34 self.max_connections = n;
35 self
36 }
37 pub fn with_max_body_size(mut self, n: usize) -> Self {
38 self.max_body_size = n;
39 self
40 }
41 pub fn with_max_request_body(mut self, n: usize) -> Self {
42 self.max_request_body = n;
43 self
44 }
45 pub fn with_allow_private_ips(mut self, allow: bool) -> Self {
46 self.allow_private_ips = allow;
47 self
48 }
49}
50
51#[cfg(test)]
52mod tests {
53 use super::*;
54
55 #[test]
56 fn test_http_config_defaults() {
57 let cfg = HttpConfig::default();
58 assert_eq!(cfg.connect_timeout_ms, 5_000);
59 assert_eq!(cfg.response_timeout_ms, 30_000);
60 assert_eq!(cfg.max_connections, 100);
61 assert_eq!(cfg.max_body_size, 10_485_760);
62 assert_eq!(cfg.max_request_body, 2_097_152);
63 assert!(!cfg.allow_private_ips);
64 }
65
66 #[test]
67 fn test_http_config_builder() {
68 let cfg = HttpConfig::default()
69 .with_connect_timeout_ms(1_000)
70 .with_allow_private_ips(true);
71 assert_eq!(cfg.connect_timeout_ms, 1_000);
72 assert!(cfg.allow_private_ips);
73 assert_eq!(cfg.response_timeout_ms, 30_000); }
75}