ppaass_v3_common/
config.rs1use serde::{Deserialize, Serialize};
2pub trait RetrieveConnectionPoolConfig {
3 fn max_pool_size(&self) -> usize;
4 fn fill_interval(&self) -> u64;
5 fn check_interval(&self) -> u64;
6 fn connection_max_alive(&self) -> i64;
7 fn heartbeat_timeout(&self) -> u64;
8 fn retake_interval(&self) -> u64;
9}
10
11pub trait RetrieveConnectionConfig {
12 fn frame_size(&self) -> usize;
13 fn connect_timeout(&self) -> u64;
14}
15
16pub trait RetrieveServerConfig {
17 fn worker_thread_number(&self) -> usize;
18 fn server_port(&self) -> u16;
19 fn ip_v6(&self) -> bool;
20}
21
22#[derive(Serialize, Deserialize, Debug, Clone)]
23pub struct ConnectionPoolConfig {
24 pub max_pool_size: usize,
25 pub fill_interval: u64,
26 pub check_interval: u64,
27 pub connection_max_alive: i64,
28 pub heartbeat_timeout: u64,
29 pub retake_interval: u64,
30}
31
32impl RetrieveConnectionPoolConfig for ConnectionPoolConfig {
33 fn max_pool_size(&self) -> usize {
34 self.max_pool_size
35 }
36 fn fill_interval(&self) -> u64 {
37 self.fill_interval
38 }
39 fn check_interval(&self) -> u64 {
40 self.check_interval
41 }
42 fn connection_max_alive(&self) -> i64 {
43 self.connection_max_alive
44 }
45 fn heartbeat_timeout(&self) -> u64 {
46 self.heartbeat_timeout
47 }
48 fn retake_interval(&self) -> u64 {
49 self.retake_interval
50 }
51}