summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2023-01-07 12:53:56 +0200
committerLars Wirzenius <liw@liw.fi>2023-01-07 12:53:56 +0200
commit211325a35cf86db46d7a4940e1179fe024bc9ec9 (patch)
tree89c30b4ace64bc90ebb3e1447195613a7f0d6b53
parent72f83251881b6af5c846fc352aa170b1fcf79408 (diff)
downloadriki-211325a35cf86db46d7a4940e1179fe024bc9ec9.tar.gz
refactor: add WikitextError
Sponsored-by: author
-rw-r--r--src/error.rs3
-rw-r--r--src/wikitext.rs20
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(),