diff options
author | Lars Wirzenius <liw@liw.fi> | 2023-01-07 12:53:56 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2023-01-07 12:53:56 +0200 |
commit | 211325a35cf86db46d7a4940e1179fe024bc9ec9 (patch) | |
tree | 89c30b4ace64bc90ebb3e1447195613a7f0d6b53 | |
parent | 72f83251881b6af5c846fc352aa170b1fcf79408 (diff) | |
download | riki-211325a35cf86db46d7a4940e1179fe024bc9ec9.tar.gz |
refactor: add WikitextError
Sponsored-by: author
-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(), |