tcp_request/request/request_builder/
impl.rs1use 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 data<T>(&mut self, data: T) -> &mut Self
50 where
51 T: Into<Vec<u8>>,
52 {
53 let mut data_clone: Vec<u8> = data.into();
54 data_clone.extend_from_slice(SPLIT_REQUEST_BYTES);
55 self.tcp_request.data = Arc::new(RwLock::new(data_clone));
56 self
57 }
58
59 #[inline]
60 pub fn buffer(&mut self, buffer_size: usize) -> &mut Self {
61 let _ = self
62 .tcp_request
63 .get_mut_config()
64 .write()
65 .and_then(|mut data| {
66 data.buffer_size = buffer_size;
67 Ok(())
68 });
69 self
70 }
71
72 #[inline]
73 pub fn timeout(&mut self, timeout: u64) -> &mut Self {
74 let _ = self
75 .tcp_request
76 .get_mut_config()
77 .write()
78 .and_then(|mut data| {
79 data.timeout = timeout;
80 Ok(())
81 });
82 self
83 }
84
85 #[inline]
86 pub fn build(&mut self) -> BoxRequestTrait {
87 self.builder = self.tcp_request.clone();
88 self.tcp_request = TcpRequest::default();
89 Box::new(self.builder.clone())
90 }
91}