reinhardt_conf/settings/
logging.rs1use reinhardt_core::macros::settings;
6use serde::{Deserialize, Serialize};
7
8fn default_level() -> String {
9 "info".to_string()
10}
11
12fn default_format() -> String {
13 "text".to_string()
14}
15
16#[settings(fragment = true, section = "logging")]
20#[non_exhaustive]
21#[derive(Clone, Debug, Serialize, Deserialize)]
22pub struct LoggingSettings {
23 #[serde(default = "default_level")]
25 pub level: String,
26 #[serde(default = "default_format")]
28 pub format: String,
29}
30
31impl Default for LoggingSettings {
32 fn default() -> Self {
33 Self {
34 level: "info".to_string(),
35 format: "text".to_string(),
36 }
37 }
38}
39
40#[cfg(test)]
41mod tests {
42 use super::*;
43 use crate::settings::fragment::SettingsFragment;
44 use rstest::rstest;
45
46 #[rstest]
47 fn test_logging_section_name() {
48 let section = LoggingSettings::section();
50
51 assert_eq!(section, "logging");
53 }
54
55 #[rstest]
56 fn test_logging_default_values() {
57 let settings = LoggingSettings::default();
59
60 assert_eq!(settings.level, "info");
62 assert_eq!(settings.format, "text");
63 }
64}