diff options
-rw-r--r-- | src/error.rs | 3 | ||||
-rw-r--r-- | src/wikitext.rs | 20 |
2 files changed, 19 insertions, 4 deletions
diff --git a/src/error.rs b/src/error.rs index 86013f3..6da90b1 100644 --- a/src/error.rs +++ b/src/error.rs @@ -30,6 +30,9 @@ pub enum RikiError { PageSpec(#[from] crate::pagespec::PageSpecError), #[error(transparent)] + Wikitext(#[from] crate::wikitext::WikitextError), + + #[error(transparent)] HtmlError(#[from] HtmlError), #[error(transparent)] diff --git a/src/wikitext.rs b/src/wikitext.rs index 691f041..4d8578a 100644 --- a/src/wikitext.rs +++ b/src/wikitext.rs @@ -1,11 +1,19 @@ use crate::directive::{Directive, Processed}; -use crate::error::RikiError; use crate::page::PageMeta; use crate::site::Site; use log::trace; use std::collections::HashMap; use std::path::Path; +#[derive(Debug, thiserror::Error)] +pub enum WikitextError { + #[error(transparent)] + Directive(#[from] crate::directive::DirectiveError), + + #[error(transparent)] + Site(#[from] crate::site::SiteError), +} + #[derive(Debug, Eq, PartialEq)] pub enum Snippet { Markdown(String), @@ -14,7 +22,7 @@ pub enum Snippet { } impl Snippet { - pub fn prepare(&self, site: &mut Site) -> Result<(), RikiError> { + pub fn prepare(&self, site: &mut Site) -> Result<(), WikitextError> { trace!("prepare snippet {:?}", self); if let Snippet::Directive(p) = self { trace!("creating directive from parsed directive"); @@ -29,7 +37,11 @@ impl Snippet { Ok(()) } - pub fn process(&self, site: &mut Site, meta: &mut PageMeta) -> Result<Processed, RikiError> { + pub fn process( + &self, + site: &mut Site, + meta: &mut PageMeta, + ) -> Result<Processed, WikitextError> { trace!("Snippet::process: self={:?}", self); let processed = match self { Snippet::Markdown(text) => Processed::Markdown(text.into()), @@ -86,7 +98,7 @@ pub struct ParsedDirective { } impl ParsedDirective { - pub fn new(name: &str, args: HashMap<String, String>) -> Result<Self, RikiError> { + pub fn new(name: &str, args: HashMap<String, String>) -> Result<Self, WikitextError> { trace!("ParsedDirective::new: name={:?} args={:?}", name, args); Ok(Self { name: name.into(), |