rpc_core_net/
config_builder.rs1use std::rc::Rc;
2
3use crate::config::{RpcConfig, TcpConfig};
4
5pub struct TcpConfigBuilder {
6 auto_pack: bool,
7 enable_ipv6: bool,
8 max_body_size: u32,
9 max_send_buffer_size: u32,
10 socket_send_buffer_size: u32,
11 socket_recv_buffer_size: u32,
12}
13
14impl TcpConfigBuilder {
15 pub fn new() -> Self {
16 Self {
17 auto_pack: false,
18 enable_ipv6: false,
19 max_body_size: 0,
20 max_send_buffer_size: 0,
21 socket_send_buffer_size: 0,
22 socket_recv_buffer_size: 0,
23 }
24 }
25
26 pub fn auto_pack(&mut self, auto_pack: bool) -> &mut Self {
27 self.auto_pack = auto_pack;
28 self
29 }
30
31 pub fn enable_ipv6(&mut self, enable_ipv6: bool) -> &mut Self {
32 self.enable_ipv6 = enable_ipv6;
33 self
34 }
35
36 pub fn max_body_size(&mut self, max_body_size: u32) -> &mut Self {
37 self.max_body_size = max_body_size;
38 self
39 }
40
41 pub fn max_send_buffer_size(&mut self, max_send_buffer_size: u32) -> &mut Self {
42 self.max_send_buffer_size = max_send_buffer_size;
43 self
44 }
45
46 pub fn socket_send_buffer_size(&mut self, socket_send_buffer_size: u32) -> &mut Self {
47 self.socket_send_buffer_size = socket_send_buffer_size;
48 self
49 }
50
51 pub fn socket_recv_buffer_size(&mut self, socket_recv_buffer_size: u32) -> &mut Self {
52 self.socket_recv_buffer_size = socket_recv_buffer_size;
53 self
54 }
55
56 pub fn build(&self) -> TcpConfig {
57 TcpConfig {
58 auto_pack: self.auto_pack,
59 enable_ipv6: self.enable_ipv6,
60 max_body_size: self.max_body_size,
61 max_send_buffer_size: self.max_send_buffer_size,
62 socket_send_buffer_size: self.socket_send_buffer_size,
63 socket_recv_buffer_size: self.socket_recv_buffer_size,
64 }
65 }
66}
67
68pub struct RpcConfigBuilder {
69 rpc: Option<Rc<rpc_core::rpc::Rpc>>,
70 ping_interval_ms: u32,
71 pong_timeout_ms: u32,
72 enable_ipv6: bool,
73 max_body_size: u32,
74 max_send_buffer_size: u32,
75 socket_send_buffer_size: u32,
76 socket_recv_buffer_size: u32,
77}
78
79impl RpcConfigBuilder {
80 pub fn new() -> Self {
81 RpcConfigBuilder {
82 rpc: None,
83 ping_interval_ms: 0,
84 pong_timeout_ms: 0,
85 enable_ipv6: false,
86 max_body_size: 0,
87 max_send_buffer_size: 0,
88 socket_send_buffer_size: 0,
89 socket_recv_buffer_size: 0,
90 }
91 }
92
93 pub fn rpc(mut self, rpc: Option<Rc<rpc_core::rpc::Rpc>>) -> Self {
94 self.rpc = rpc;
95 self
96 }
97
98 pub fn ping_interval_ms(mut self, ping_interval_ms: u32) -> Self {
99 self.ping_interval_ms = ping_interval_ms;
100 self
101 }
102
103 pub fn pong_timeout_ms(mut self, pong_timeout_ms: u32) -> Self {
104 self.pong_timeout_ms = pong_timeout_ms;
105 self
106 }
107
108 pub fn enable_ipv6(mut self, enable_ipv6: bool) -> Self {
109 self.enable_ipv6 = enable_ipv6;
110 self
111 }
112
113 pub fn max_body_size(mut self, max_body_size: u32) -> Self {
114 self.max_body_size = max_body_size;
115 self
116 }
117
118 pub fn max_send_buffer_size(mut self, max_send_buffer_size: u32) -> Self {
119 self.max_send_buffer_size = max_send_buffer_size;
120 self
121 }
122
123 pub fn socket_send_buffer_size(mut self, socket_send_buffer_size: u32) -> Self {
124 self.socket_send_buffer_size = socket_send_buffer_size;
125 self
126 }
127
128 pub fn socket_recv_buffer_size(mut self, socket_recv_buffer_size: u32) -> Self {
129 self.socket_recv_buffer_size = socket_recv_buffer_size;
130 self
131 }
132
133 pub fn build(self) -> RpcConfig {
134 RpcConfig {
135 rpc: self.rpc,
136 ping_interval_ms: self.ping_interval_ms,
137 pong_timeout_ms: self.pong_timeout_ms,
138 enable_ipv6: self.enable_ipv6,
139 max_body_size: self.max_body_size,
140 max_send_buffer_size: self.max_send_buffer_size,
141 socket_send_buffer_size: self.socket_send_buffer_size,
142 socket_recv_buffer_size: self.socket_recv_buffer_size,
143 }
144 }
145}