diff --git a/src/embedded_search.rs b/src/embedded_search.rs index a556cb8..63e33d6 100644 --- a/src/embedded_search.rs +++ b/src/embedded_search.rs @@ -527,21 +527,21 @@ fn text<'a>(parts: impl Iterator) -> String { } fn abstract_text(index: Option>>) -> String { + let index = index.unwrap_or_default(); let mut words = index - .unwrap_or_default() - .into_iter() + .iter() .flat_map(|(word, positions)| { positions - .into_iter() - .map(move |position| (position, word.clone())) + .iter() + .map(move |&position| (position, word.as_str())) }) .collect::>(); - words.sort_by_key(|(position, _)| *position); + words.sort_unstable_by_key(|(position, _)| *position); let mut iter = words.into_iter().take(48).map(|(_, word)| word); match iter.next() { - Some(first) => iter.fold(first, |mut acc, word| { + Some(first) => iter.fold(first.to_owned(), |mut acc, word| { acc.push(' '); - acc.push_str(&word); + acc.push_str(word); acc }), None => String::new(), diff --git a/src/lib.rs b/src/lib.rs index c9b6ecd..0ab59d0 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1333,7 +1333,10 @@ mod tests { filters: SearchFilters::default(), }; - client.cache.insert("rust".to_owned(), dummy_response); + client.cache.insert( + (false, SearchMode::Balanced, "rust".to_owned()), + dummy_response, + ); assert_eq!(client.cached_entries(), 1); client.clear_cache();