From aca5b8e32a1bcd2623e990aec71d923dfd893802 Mon Sep 17 00:00:00 2001 From: llama Date: Tue, 18 Nov 2025 21:20:10 +0800 Subject: [PATCH] add wrapper struct with case-folding get impl --- rslib/src/sync/media/database/client/mod.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/rslib/src/sync/media/database/client/mod.rs b/rslib/src/sync/media/database/client/mod.rs index f9c6e5ed1..21e57ab26 100644 --- a/rslib/src/sync/media/database/client/mod.rs +++ b/rslib/src/sync/media/database/client/mod.rs @@ -18,6 +18,20 @@ use crate::prelude::*; pub mod changetracker; +pub struct Checksums(HashMap); + +impl Checksums { + // case-fold filenames when checking files to be imported + // to account for case-insensitive filesystems + pub fn get(&self, key: impl AsRef) -> Option<&Sha1Hash> { + self.0.get(key.as_ref().to_lowercase().as_str()) + } + + pub fn contains_key(&self, key: impl AsRef) -> bool { + self.get(key).is_some() + } +} + #[derive(Debug, PartialEq, Eq)] pub struct MediaEntry { pub fname: String,