use crate::config::{ApplyLayer, ApplyValExt};
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone)]
pub struct ChangelogConfig {
pub read_changelog_file: bool,
pub rss_feed: bool,
}
#[derive(Debug, Default, Serialize, Deserialize, JsonSchema)]
pub struct ChangelogLayer {
pub read_changelog_file: Option<bool>,
pub rss_feed: Option<bool>,
}
impl Default for ChangelogConfig {
fn default() -> Self {
ChangelogConfig {
read_changelog_file: true,
rss_feed: true,
}
}
}
impl ApplyLayer for ChangelogConfig {
type Layer = ChangelogLayer;
fn apply_layer(&mut self, layer: Self::Layer) {
let ChangelogLayer {
read_changelog_file,
rss_feed,
} = layer;
self.read_changelog_file.apply_val(read_changelog_file);
self.rss_feed.apply_val(rss_feed);
}
}