Skip to content

Commit c3b1d99

Browse files
authored
Merge pull request #1159 from Turbo87/rayon
Use `rayon` to parallelize the blog post rendering
2 parents c74cc9d + 92fe578 commit c3b1d99

File tree

3 files changed

+80
-5
lines changed

3 files changed

+80
-5
lines changed

Cargo.lock

Lines changed: 75 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ serde_derive = "1.0"
1818
serde_yaml = "0.8"
1919
serde_json = "1.0"
2020
comrak = "0.13"
21+
rayon = "1.8.0"
2122
regex = "1.3"
2223
sass-rs = "0.2"
2324
chrono = "0.4"

src/lib.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ use std::convert::AsRef;
1212
use std::fs::{self, File};
1313
use std::io::{self, Write};
1414
use std::path::{Path, PathBuf};
15+
use rayon::prelude::*;
1516

1617
struct Generator<'a> {
1718
handlebars: Handlebars<'a>,
@@ -125,11 +126,9 @@ impl<'a> Generator<'a> {
125126
self.render_feed(blog)?;
126127
self.render_releases_feed(blog)?;
127128

128-
for (i, post) in blog.posts().iter().enumerate() {
129-
let path = self.render_post(blog, post)?;
130-
if i == 0 {
131-
println!("└─ Latest post: {}\n", self.file_url(&path));
132-
}
129+
let paths = blog.posts().par_iter().map(|post| self.render_post(blog, post)).collect::<Result<Vec<_>, _>>()?;
130+
if let Some(path) = paths.first() {
131+
println!("└─ Latest post: {}\n", self.file_url(path));
133132
}
134133

135134
Ok(())

0 commit comments

Comments
 (0)