tcp_request/request/request_builder/
impl.rs

1use crate::*;
2
3impl Default for RequestBuilder {
4    fn default() -> Self {
5        Self {
6            tcp_request: TcpRequest::default(),
7            builder: TcpRequest::default(),
8        }
9    }
10}
11
12impl RequestBuilder {
13    pub fn new() -> Self {
14        Self::default()
15    }
16
17    pub fn host<T>(&mut self, host: T) -> &mut Self
18    where
19        T: Into<String>,
20    {
21        let _ = self
22            .tcp_request
23            .get_mut_config()
24            .write()
25            .and_then(|mut data| {
26                data.host = host.into();
27                Ok(())
28            });
29        self
30    }
31
32    pub fn port(&mut self, port: usize) -> &mut Self {
33        let _ = self
34            .tcp_request
35            .get_mut_config()
36            .write()
37            .and_then(|mut data| {
38                data.port = port;
39                Ok(())
40            });
41        self
42    }
43
44    pub fn buffer(&mut self, buffer_size: usize) -> &mut Self {
45        let _ = self
46            .tcp_request
47            .get_mut_config()
48            .write()
49            .and_then(|mut data| {
50                data.buffer_size = buffer_size;
51                Ok(())
52            });
53        self
54    }
55
56    pub fn timeout(&mut self, timeout: u64) -> &mut Self {
57        let _ = self
58            .tcp_request
59            .get_mut_config()
60            .write()
61            .and_then(|mut data| {
62                data.timeout = timeout;
63                Ok(())
64            });
65        self
66    }
67
68    pub fn build(&mut self) -> BoxRequestTrait {
69        self.builder = self.tcp_request.clone();
70        self.tcp_request = TcpRequest::default();
71        Box::new(self.builder.clone())
72    }
73}