diff options
-rw-r--r-- | src/directive/calendar.rs | 19 | ||||
-rw-r--r-- | 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<String, SiteError> { - 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<String, SiteError> { + 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( |