soph_redis/config/
mod.rs

1use serde::{Deserialize, Serialize};
2use soph_config::support::default;
3
4#[derive(Clone, Debug, Deserialize, Serialize)]
5pub struct Redis {
6    #[serde(default = "default_url")]
7    pub url: String,
8
9    #[serde(default = "default_max_size")]
10    pub max_size: u32,
11
12    #[serde(default = "default_min_idle")]
13    pub min_idle: u32,
14
15    #[serde(default = "default_test_on_check_out")]
16    pub test_on_check_out: bool,
17
18    #[serde(default = "default_max_lifetime")]
19    pub max_lifetime: u64,
20
21    #[serde(default = "default_idle_timeout")]
22    pub idle_timeout: u64,
23
24    #[serde(default = "default_connection_timeout")]
25    pub connection_timeout: u64,
26
27    #[serde(default = "default_retry_connection")]
28    pub retry_connection: bool,
29
30    #[serde(default = "default_reaper_rate")]
31    pub reaper_rate: u64,
32}
33
34fn default_url() -> String {
35    "redis://localhost".to_string()
36}
37
38impl Default for Redis {
39    fn default() -> Self {
40        default::<Self>().expect("Failed to get default value")
41    }
42}
43
44fn default_max_size() -> u32 {
45    10
46}
47fn default_min_idle() -> u32 {
48    1
49}
50
51fn default_test_on_check_out() -> bool {
52    true
53}
54
55fn default_max_lifetime() -> u64 {
56    30 * 60 * 1000
57}
58
59fn default_idle_timeout() -> u64 {
60    10 * 60 * 1000
61}
62
63fn default_connection_timeout() -> u64 {
64    3 * 1000
65}
66
67fn default_retry_connection() -> bool {
68    true
69}
70
71fn default_reaper_rate() -> u64 {
72    30 * 1000
73}