@@ -38,6 +38,14 @@ fn get_hash<K, V>(entries: &[Bucket<K, V>]) -> impl Fn(&usize) -> u64 + use<'_,
3838 move |& i| entries[ i] . hash . get ( )
3939}
4040
41+ #[ inline]
42+ fn equal < ' a , K : Eq , V > (
43+ key : & ' a K ,
44+ entries : & ' a [ Bucket < K , V > ] ,
45+ ) -> impl Fn ( & usize ) -> bool + use < ' a , K , V > {
46+ move |& i| K :: eq ( key, & entries[ i] . key )
47+ }
48+
4149#[ inline]
4250fn equivalent < ' a , K , V , Q : ?Sized + Equivalent < K > > (
4351 key : & ' a Q ,
@@ -327,7 +335,7 @@ impl<K, V> Core<K, V> {
327335 where
328336 K : Eq ,
329337 {
330- let eq = equivalent ( & key, & self . entries ) ;
338+ let eq = equal ( & key, & self . entries ) ;
331339 let hasher = get_hash ( & self . entries ) ;
332340 match self . indices . entry ( hash. get ( ) , eq, hasher) {
333341 hash_table:: Entry :: Occupied ( entry) => {
@@ -354,7 +362,7 @@ impl<K, V> Core<K, V> {
354362 where
355363 K : Eq ,
356364 {
357- let eq = equivalent ( & key, & self . entries ) ;
365+ let eq = equal ( & key, & self . entries ) ;
358366 let hasher = get_hash ( & self . entries ) ;
359367 match self . indices . entry ( hash. get ( ) , eq, hasher) {
360368 hash_table:: Entry :: Occupied ( entry) => {
0 commit comments