From 39d449889d8b3ca36136158f3c9bd68946eb32e1 Mon Sep 17 00:00:00 2001 From: Nick Pegg Date: Thu, 25 Sep 2025 15:04:59 -0700 Subject: [PATCH 1/2] serde_yml -> serde_yaml_ng --- Cargo.lock | 28 +++++++++++----------------- Cargo.toml | 2 +- src/config.rs | 6 +++--- 3 files changed, 15 insertions(+), 21 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 89b63cf..4bebd05 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -744,16 +744,6 @@ dependencies = [ "cc", ] -[[package]] -name = "libyml" -version = "0.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3302702afa434ffa30847a83305f0a69d6abd74293b6554c18ec85c7ef30c980" -dependencies = [ - "anyhow", - "version_check", -] - [[package]] name = "log" version = "0.4.27" @@ -973,7 +963,7 @@ dependencies = [ "pulldown-cmark", "rayon", "serde", - "serde_yml", + "serde_yaml_ng", "tera", "thiserror 2.0.12", "time", @@ -1303,18 +1293,16 @@ dependencies = [ ] [[package]] -name = "serde_yml" -version = "0.0.12" +name = "serde_yaml_ng" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59e2dd588bf1597a252c3b920e0143eb99b0f76e4e082f4c92ce34fbc9e71ddd" +checksum = "7b4db627b98b36d4203a7b458cf3573730f2bb591b28871d916dfa9efabfd41f" dependencies = [ "indexmap", "itoa", - "libyml", - "memchr", "ryu", "serde", - "version_check", + "unsafe-libyaml", ] [[package]] @@ -1609,6 +1597,12 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" +[[package]] +name = "unsafe-libyaml" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" + [[package]] name = "utf8parse" version = "0.2.2" diff --git a/Cargo.toml b/Cargo.toml index bade3fa..7fd88d6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,7 +19,7 @@ log = "0.4.27" pulldown-cmark = "0.13.0" rayon = "1.10" serde = { version = "1.0", features = ["derive"] } -serde_yml = "0.0.12" +serde_yaml_ng = "0.10.0" tera = { version = "1.20", default-features = false } thiserror = "2.0" time = { version = "0.3.41", features = ["formatting", "macros", "parsing"] } diff --git a/src/config.rs b/src/config.rs index 9152206..6304525 100644 --- a/src/config.rs +++ b/src/config.rs @@ -23,7 +23,7 @@ impl Config { config_path.display(), ) })?; - let cfg = serde_yml::from_slice(&content) + let cfg = serde_yaml_ng::from_slice(&content) .with_context(|| format!("Failed to parse config from {}", config_path.display()))?; Ok(cfg) } @@ -56,11 +56,11 @@ mod test { fn from_yaml() { // Empty YAML gives full default values let default_cfg = Config::default(); - let cfg: Config = serde_yml::from_str("").unwrap(); + let cfg: Config = serde_yaml_ng::from_str("").unwrap(); assert_eq!(cfg, default_cfg); // Default values for any unspecified fields - let cfg: Config = serde_yml::from_str("thumbnail_size: [1, 1]").unwrap(); + let cfg: Config = serde_yaml_ng::from_str("thumbnail_size: [1, 1]").unwrap(); assert_ne!(cfg, default_cfg); assert_eq!(cfg.thumbnail_size, (1, 1)); assert_eq!(cfg.view_size, default_cfg.view_size); From 35cb7949fdbdecfda56dfcd04833eb254e1fb15e Mon Sep 17 00:00:00 2001 From: Nick Pegg Date: Thu, 25 Sep 2025 15:13:16 -0700 Subject: [PATCH 2/2] fix warnings, fmt --- src/generate/album_dir.rs | 28 ++++++++++++++-------------- src/generate/image.rs | 20 +++++++++----------- src/reorganize.rs | 4 ++-- 3 files changed, 25 insertions(+), 27 deletions(-) diff --git a/src/generate/album_dir.rs b/src/generate/album_dir.rs index 461debb..a77eb25 100644 --- a/src/generate/album_dir.rs +++ b/src/generate/album_dir.rs @@ -19,7 +19,7 @@ pub struct AlbumDir { impl AlbumDir { /// Returns an iterator over all images in the album and subalbums - pub fn iter_all_images(&self) -> AlbumImageIter { + pub fn iter_all_images(&self) -> AlbumImageIter<'_> { AlbumImageIter::new(self) } @@ -79,20 +79,20 @@ impl AlbumDir { } } } - } else if entry_path.is_dir() { - if let Some(dirname) = entry_path.file_name().and_then(|n| n.to_str()) { - if dirname.starts_with("_") { - // Likely a templates or static dir - continue; - } else if dirname == "site" { - // Is a generated site dir, don't descend into it - continue; - } else if dirname == "slides" { - continue; - } - - children.push(AlbumDir::from_path(&entry_path, root)?); + } else if entry_path.is_dir() + && let Some(dirname) = entry_path.file_name().and_then(|n| n.to_str()) + { + if dirname.starts_with("_") { + // Likely a templates or static dir + continue; + } else if dirname == "site" { + // Is a generated site dir, don't descend into it + continue; + } else if dirname == "slides" { + continue; } + + children.push(AlbumDir::from_path(&entry_path, root)?); } } diff --git a/src/generate/image.rs b/src/generate/image.rs index 1053d3f..91dc1c8 100644 --- a/src/generate/image.rs +++ b/src/generate/image.rs @@ -55,17 +55,15 @@ impl Image { /// return "blah.thumb" fn slide_filename(path: &Path, ext: &str, keep_ext: bool) -> anyhow::Result { let mut new_ext: OsString = ext.into(); - if keep_ext { - if let Some(e) = path.extension() { - new_ext = OsString::from( - ext.to_string() - + "." - + e.to_str().ok_or(anyhow!( - "Image {} extension is not valid UTF-8", - path.display() - ))?, - ) - } + if keep_ext && let Some(e) = path.extension() { + new_ext = OsString::from( + ext.to_string() + + "." + + e.to_str().ok_or(anyhow!( + "Image {} extension is not valid UTF-8", + path.display() + ))?, + ) } let new_path = path.with_extension(new_ext); diff --git a/src/reorganize.rs b/src/reorganize.rs index f96c089..0b2a007 100644 --- a/src/reorganize.rs +++ b/src/reorganize.rs @@ -1,7 +1,7 @@ -use anyhow::{anyhow, Context}; +use anyhow::{Context, anyhow}; use image::ImageReader; use std::ffi::OsStr; -use std::fs::{rename, File}; +use std::fs::{File, rename}; use std::io::BufReader; use std::path::{Path, PathBuf}; use std::str::from_utf8;