autopulse_service/settings/
app.rs

1use autopulse_utils::LogLevel;
2use serde::Deserialize;
3
4#[doc(hidden)]
5fn default_hostname() -> String {
6    "0.0.0.0".to_string()
7}
8
9#[doc(hidden)]
10const fn default_port() -> u16 {
11    2875
12}
13
14#[doc(hidden)]
15fn default_database_url() -> String {
16    "postgres://autopulse:autopulse@localhost:5432/autopulse".to_string()
17}
18
19#[doc(hidden)]
20fn default_log_level() -> LogLevel {
21    LogLevel::default()
22}
23
24#[derive(Deserialize, Clone)]
25pub struct App {
26    /// Hostname to bind to, (default: 0.0.0.0)
27    #[serde(default = "default_hostname")]
28    pub hostname: String,
29    /// Port to bind to (default: 2875)
30    #[serde(default = "default_port")]
31    pub port: u16,
32    /// Database URL (see [`AnyConnection`](autopulse_database::conn::AnyConnection))
33    #[serde(default = "default_database_url")]
34    pub database_url: String,
35    /// Log level (default: info) (trace, debug, info, warn, error)
36    #[serde(default = "default_log_level")]
37    pub log_level: LogLevel,
38    /// Whether to include api logging (default: false)
39    #[serde(default)]
40    pub api_logging: bool,
41}
42
43impl Default for App {
44    fn default() -> Self {
45        Self {
46            hostname: default_hostname(),
47            port: default_port(),
48            database_url: default_database_url(),
49            log_level: default_log_level(),
50            api_logging: false,
51        }
52    }
53}