From 8db80a826f401f680fb78e45a53371ebfe2f4459 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Wed, 9 Nov 2022 13:19:11 +0200 Subject: use DirectiveImplementation for Calendar Sponsored-by: author --- src/directive/calendar.rs | 19 +++++++++---------- src/directive/mod.rs | 2 +- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/directive/calendar.rs b/src/directive/calendar.rs index a11cc52..a3d199a 100644 --- a/src/directive/calendar.rs +++ b/src/directive/calendar.rs @@ -1,3 +1,4 @@ +use crate::directive::DirectiveImplementation; use crate::error::SiteError; use crate::page::PageMeta; use crate::site::Site; @@ -6,9 +7,9 @@ use crate::wikitext::ParsedDirective; #[derive(Debug, Default, Eq, PartialEq)] pub struct Calendar {} -impl Calendar { - pub const REQUIRED: &'static [&'static str] = &[]; - pub const ALLOWED: &'static [&'static str] = &[ +impl DirectiveImplementation for Calendar { + const REQUIRED: &'static [&'static str] = &[]; + const ALLOWED: &'static [&'static str] = &[ "type", "pages", "year", @@ -17,15 +18,13 @@ impl Calendar { "months_per_row", "archivebase", ]; - pub const ALLOW_ANY_UNNAMED: bool = true; + const ALLOW_ANY_UNNAMED: bool = true; - pub fn process(&self, _site: &Site, _meta: &mut PageMeta) -> Result { - Err(SiteError::UnimplementedDirective("calendar".into())) + fn from_parsed(_: &ParsedDirective) -> Self { + Self::default() } -} -impl From<&ParsedDirective> for Calendar { - fn from(_: &ParsedDirective) -> Self { - Calendar::default() + fn process(&self, _site: &Site, _meta: &mut PageMeta) -> Result { + Err(SiteError::UnimplementedDirective("calendar".into())) } } diff --git a/src/directive/mod.rs b/src/directive/mod.rs index 899980d..40def2f 100644 --- a/src/directive/mod.rs +++ b/src/directive/mod.rs @@ -83,7 +83,7 @@ impl TryFrom<&ParsedDirective> for Directive { Calendar::ALLOWED, Calendar::ALLOW_ANY_UNNAMED, )?; - Directive::Calendar(Calendar::from(p)) + Directive::Calendar(Calendar::from_parsed(p)) } "format" => { Self::check_args( -- cgit v1.2.1