Skip to main content

kellnr_settings/
postgresql.rs

1use provcfg::{ClapArgs, Configurable};
2use serde::{Deserialize, Serialize};
3
4fn default_pg_address() -> String {
5    "localhost".to_string()
6}
7
8fn default_pg_db() -> String {
9    "kellnr".to_string()
10}
11
12#[derive(Debug, Deserialize, Serialize, Eq, PartialEq, Clone, Configurable, ClapArgs)]
13#[serde(default)]
14#[configurable(clap_prefix = "postgresql")]
15pub struct Postgresql {
16    /// Use `PostgreSQL` instead of `SQLite`
17    pub enabled: bool,
18
19    /// `PostgreSQL` server address
20    pub address: String,
21
22    /// `PostgreSQL` port
23    pub port: u16,
24
25    /// Database name
26    pub db: String,
27
28    /// Database user
29    pub user: String,
30
31    /// Database password
32    #[serde(skip_serializing, default)]
33    #[configurable(secret)]
34    pub pwd: String,
35}
36
37impl Default for Postgresql {
38    fn default() -> Self {
39        Self {
40            enabled: false,
41            address: default_pg_address(),
42            port: 5432,
43            db: default_pg_db(),
44            user: String::new(),
45            pwd: String::new(),
46        }
47    }
48}