reinhardt_conf/settings/
template_settings.rs1use reinhardt_core::macros::settings;
6use serde::{Deserialize, Serialize};
7use std::collections::HashMap;
8use std::path::PathBuf;
9
10#[settings(fragment = true, default_policy = "required")]
12#[derive(Clone, Debug, Serialize, Deserialize)]
13pub struct FragmentTemplateConfig {
14 pub backend: String,
16 #[setting(optional)]
18 #[serde(default)]
19 pub dirs: Vec<PathBuf>,
20 #[setting(optional)]
22 #[serde(default)]
23 pub app_dirs: bool,
24 #[setting(optional)]
26 #[serde(default)]
27 pub options: HashMap<String, serde_json::Value>,
28}
29
30#[settings(fragment = true, section = "templates")]
34#[derive(Clone, Debug, Default, Serialize, Deserialize)]
35pub struct TemplateSettings {
36 #[serde(default)]
38 pub configs: Vec<FragmentTemplateConfig>,
39}
40
41#[cfg(test)]
42mod tests {
43 use super::*;
44 use crate::settings::fragment::SettingsFragment;
45 use rstest::rstest;
46
47 #[rstest]
48 fn test_template_settings_section() {
49 assert_eq!(TemplateSettings::section(), "templates");
51 }
52
53 #[rstest]
54 fn test_template_settings_default() {
55 let settings = TemplateSettings::default();
57
58 assert!(settings.configs.is_empty());
60 }
61}