ppaass_v3_common/
config.rs

1use 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}