From 211325a35cf86db46d7a4940e1179fe024bc9ec9 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 7 Jan 2023 12:53:56 +0200 Subject: refactor: add WikitextError Sponsored-by: author --- src/error.rs | 3 +++ 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 @@ -29,6 +29,9 @@ pub enum RikiError { #[error(transparent)] PageSpec(#[from] crate::pagespec::PageSpecError), + #[error(transparent)] + Wikitext(#[from] crate::wikitext::WikitextError), + #[error(transparent)] HtmlError(#[from] HtmlError), 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 { + pub fn process( + &self, + site: &mut Site, + meta: &mut PageMeta, + ) -> Result { 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) -> Result { + pub fn new(name: &str, args: HashMap) -> Result { trace!("ParsedDirective::new: name={:?} args={:?}", name, args); Ok(Self { name: name.into(), -- cgit v1.2.1