tcp_request/request/request_builder/
impl.rs

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