summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2022-11-09 13:19:11 +0200
committerLars Wirzenius <liw@liw.fi>2022-11-09 13:22:42 +0200
commit8db80a826f401f680fb78e45a53371ebfe2f4459 (patch)
tree29ba744748fb3606145da8cf6b8915809ad331ab
parentd208687a7c62dfbec0e4941d47db2f897c47a933 (diff)
downloadriki-8db80a826f401f680fb78e45a53371ebfe2f4459.tar.gz
use DirectiveImplementation for Calendar
Sponsored-by: author
-rw-r--r--src/directive/calendar.rs19
-rw-r--r--src/directive/mod.rs2
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(