From 302f21f904aac39ceba16bbb8d14c07d910333cd Mon Sep 17 00:00:00 2001 From: Ajeet D'Souza <98ajeet@gmail.com> Date: Sun, 5 May 2024 19:40:13 +0530 Subject: [PATCH] Fix case conversion --- src/cmd/query.rs | 2 +- src/db/stream.rs | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/cmd/query.rs b/src/cmd/query.rs index 988abcf..6457461 100644 --- a/src/cmd/query.rs +++ b/src/cmd/query.rs @@ -78,7 +78,7 @@ impl Query { fn get_stream<'a>(&self, db: &'a mut Database, now: Epoch) -> Result> { let mut options = StreamOptions::new(now) - .with_keywords(self.keywords.to_owned()) + .with_keywords(self.keywords.iter().map(|s| s.as_str())) .with_exclude(config::exclude_dirs()?); if !self.all { let resolve_symlinks = config::resolve_symlinks(); diff --git a/src/db/stream.rs b/src/db/stream.rs index 151b3fe..5d872ad 100644 --- a/src/db/stream.rs +++ b/src/db/stream.rs @@ -122,8 +122,8 @@ impl StreamOptions { } } - pub fn with_keywords(mut self, keywords: Vec) -> Self { - self.keywords = keywords; + pub fn with_keywords, S: AsRef>(mut self, keywords: I) -> Self { + self.keywords = keywords.into_iter().map(util::to_lowercase).collect(); self } @@ -173,8 +173,7 @@ mod tests { #[case(&["/foo/", "/bar"], "/foo/baz/bar", true)] fn query(#[case] keywords: &[&str], #[case] path: &str, #[case] is_match: bool) { let db = &mut Database::new(PathBuf::new(), Vec::new(), |_| Vec::new(), false); - let options = - StreamOptions::new(0).with_keywords(keywords.iter().map(|s| s.to_string()).collect()); + let options = StreamOptions::new(0).with_keywords(keywords.iter()); let stream = Stream::new(db, options); assert_eq!(is_match, stream.filter_by_keywords(path)); }