From d5d10a48183e3132a78b4f7e500678d4600970e8 Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Sat, 22 Feb 2025 11:02:36 -0500 Subject: [PATCH] Don't use nightly rust --- src/generator/static_files.rs | 17 ++++++++++++----- src/generator/tags.rs | 17 ++++++++++------- src/generator/util/slugify.rs | 3 ++- src/main.rs | 2 -- 4 files changed, 24 insertions(+), 15 deletions(-) diff --git a/src/generator/static_files.rs b/src/generator/static_files.rs index 8932d28..24d5c9a 100644 --- a/src/generator/static_files.rs +++ b/src/generator/static_files.rs @@ -1,6 +1,6 @@ use std::{ cell::RefCell, - fs::{File, ReadDir}, + fs::{DirEntry, File, ReadDir}, path::PathBuf, rc::Rc, }; @@ -107,10 +107,7 @@ impl Iterator for ReadFilesRecursive { } else { match self.read_dir.next() { Some(Ok(ent)) => { - if let Ok(ft) = ent.file_type() - && ft.is_dir() - && let Ok(recurse) = read_files_recursive(ent.path()) - { + if let Some(recurse) = read_files_recursive_ent(&ent) { self.recurse = Some(Box::new(recurse)); self.next() } else { @@ -123,6 +120,16 @@ impl Iterator for ReadFilesRecursive { } } +fn read_files_recursive_ent(ent: &DirEntry) -> Option { + let Ok(ft) = ent.file_type() else { + return None; + }; + if !ft.is_dir() { + return None; + } + read_files_recursive(ent.path()).ok() +} + fn read_files_recursive(path: PathBuf) -> std::io::Result { std::fs::read_dir(path).map(|read_dir| ReadFilesRecursive { read_dir, diff --git a/src/generator/tags.rs b/src/generator/tags.rs index ce9c39d..6852744 100644 --- a/src/generator/tags.rs +++ b/src/generator/tags.rs @@ -123,13 +123,16 @@ impl Rule for PostsByTag { .inputs .iter() .flat_map(|post_input| { - if let Some(post) = post_input.value().as_ref() - && post - .metadata - .tags - .iter() - .flatten() - .any(|t| t.slug == self.tag.slug) + let post = post_input.value(); + let Some(post) = post.as_ref() else { + return None; + }; + if post + .metadata + .tags + .iter() + .flatten() + .any(|t| t.slug == self.tag.slug) { Some(Entry { permalink: post.permalink(), diff --git a/src/generator/util/slugify.rs b/src/generator/util/slugify.rs index 5d75f25..316b062 100644 --- a/src/generator/util/slugify.rs +++ b/src/generator/util/slugify.rs @@ -42,7 +42,8 @@ impl> Iterator for Slugify { // if we're about to start lowercasing something, and the previous // (untransformed) char was lowercase (i.e., at a transition from lower -> // upper case), emit a substitution - if let Action::Lowercase = action && let Some(prev_char) = prev_char && prev_char.is_lowercase() { + if action == Action::Lowercase && prev_char.map_or(false, |c| c.is_lowercase()) + { self.state = State::Lowercase(c.to_lowercase()); Some(self.substitution) } else { diff --git a/src/main.rs b/src/main.rs index 10e0a08..b567037 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,3 @@ -#![feature(let_chains)] - mod generator; mod live_reload;