summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2022-10-16 10:40:42 +0300
committerLars Wirzenius <liw@liw.fi>2022-10-16 10:40:42 +0300
commit732fa0f4041b4ad539f607e1f299e7b25c2fe45d (patch)
tree26f37bbdd88ce3eaa0db355a38a7dd24f77b19cf
parentffe3d58415c4f604732106409ff8f4c16e3667de (diff)
downloadriki-732fa0f4041b4ad539f607e1f299e7b25c2fe45d.tar.gz
refactor: simplify processing by dropping queue of names
Sponsored-by: author
-rw-r--r--src/site.rs26
1 files changed, 7 insertions, 19 deletions
diff --git a/src/site.rs b/src/site.rs
index 3636789..874f3c8 100644
--- a/src/site.rs
+++ b/src/site.rs
@@ -7,7 +7,7 @@ use crate::srcdir::{PathFilter, SourceDir};
use crate::token::TokenPatterns;
use crate::util::make_relative_link;
use log::{debug, info, trace};
-use std::collections::{BinaryHeap, HashMap};
+use std::collections::HashMap;
use std::path::{Path, PathBuf};
use std::time::UNIX_EPOCH;
@@ -17,7 +17,6 @@ pub struct Site {
builder: NameBuilder,
unprocessed_pages: Vec<UnprocessedPage>,
markdown_pages: Vec<MarkdownPage>,
- names_to_process: BinaryHeap<Name>,
pages_that_will_exist: PageSet,
files: Names,
}
@@ -36,7 +35,6 @@ impl Site {
markdown_pages: vec![],
files: Names::default(),
patterns: TokenPatterns::default(),
- names_to_process: BinaryHeap::new(),
pages_that_will_exist: PageSet::default(),
shortcuts: HashMap::new(),
}
@@ -47,7 +45,10 @@ impl Site {
trace!("scan: name={}", name);
if name.is_wikitext_page() {
trace!("scan: it's a page");
- self.names_to_process.push(name);
+ debug!("loading wikitext page {}", name.source_path().display());
+ let page = WikitextPage::read(&name)?;
+ self.files.insert(name);
+ self.add_wikitextpage(page)?;
} else {
trace!("scan: it's a non-page file");
let filename = name.source_path();
@@ -81,7 +82,7 @@ impl Site {
pub fn process(&mut self) -> Result<(), SiteError> {
trace!("processing queues");
loop {
- if !self.process_name()? && !self.process_page()? {
+ if !self.process_page()? {
trace!("processing queues done");
break;
}
@@ -89,19 +90,6 @@ impl Site {
Ok(())
}
- fn process_name(&mut self) -> Result<bool, SiteError> {
- if let Some(name) = self.names_to_process.pop() {
- debug!("loading wikitext page {}", name.source_path().display());
- let page = WikitextPage::read(&name)?;
- self.files.insert(name);
- self.add_wikitextpage(page)?;
- Ok(true)
- } else {
- trace!("name_queue was empty");
- Ok(false)
- }
- }
-
fn process_page(&mut self) -> Result<bool, SiteError> {
if let Some(page) = self.unprocessed_pages.pop() {
debug!(
@@ -126,7 +114,7 @@ impl Site {
}
pub fn pages_and_files(&self) -> impl Iterator<Item = &Name> {
- self.files.iter().chain(self.names_to_process.iter())
+ self.files.iter()
}
fn all_files(&self) -> Result<Vec<Name>, SiteError> {