oranda/config/components/
changelog.rs1use crate::config::{ApplyLayer, ApplyValExt};
2use schemars::JsonSchema;
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone)]
7pub struct ChangelogConfig {
8 pub read_changelog_file: bool,
10 pub rss_feed: bool,
12}
13
14#[derive(Debug, Default, Serialize, Deserialize, JsonSchema)]
16pub struct ChangelogLayer {
17 pub read_changelog_file: Option<bool>,
21 pub rss_feed: Option<bool>,
23}
24
25impl Default for ChangelogConfig {
26 fn default() -> Self {
27 ChangelogConfig {
28 read_changelog_file: true,
29 rss_feed: true,
30 }
31 }
32}
33
34impl ApplyLayer for ChangelogConfig {
35 type Layer = ChangelogLayer;
36 fn apply_layer(&mut self, layer: Self::Layer) {
37 let ChangelogLayer {
39 read_changelog_file,
40 rss_feed,
41 } = layer;
42 self.read_changelog_file.apply_val(read_changelog_file);
43 self.rss_feed.apply_val(rss_feed);
44 }
45}