Skip to main content

kellnr_settings/
postgresql.rs

1use clap_serde_derive::ClapSerde;
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, ClapSerde)]
13#[serde(default)]
14pub struct Postgresql {
15    /// Use `PostgreSQL` instead of `SQLite`
16    #[default(false)]
17    #[arg(id = "postgresql-enabled", long = "postgresql-enabled")]
18    pub enabled: bool,
19
20    /// `PostgreSQL` server address
21    #[default(default_pg_address())]
22    #[arg(id = "postgresql-address", long = "postgresql-address")]
23    pub address: String,
24
25    /// `PostgreSQL` port
26    #[default(5432)]
27    #[arg(id = "postgresql-port", long = "postgresql-port")]
28    pub port: u16,
29
30    /// Database name
31    #[default(default_pg_db())]
32    #[arg(id = "postgresql-db", long = "postgresql-db")]
33    pub db: String,
34
35    /// Database user
36    #[default(String::new())]
37    #[arg(id = "postgresql-user", long = "postgresql-user")]
38    pub user: String,
39
40    /// Database password
41    #[default(String::new())]
42    #[serde(skip_serializing, default)]
43    #[arg(id = "postgresql-pwd", long = "postgresql-pwd")]
44    pub pwd: String,
45}