diff options
author | Lars Wirzenius <liw@liw.fi> | 2022-11-09 13:19:11 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2022-11-09 13:22:42 +0200 |
commit | 8db80a826f401f680fb78e45a53371ebfe2f4459 (patch) | |
tree | 29ba744748fb3606145da8cf6b8915809ad331ab | |
parent | d208687a7c62dfbec0e4941d47db2f897c47a933 (diff) | |
download | riki-8db80a826f401f680fb78e45a53371ebfe2f4459.tar.gz |
use DirectiveImplementation for Calendar
Sponsored-by: author
-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( |