@@ -3,9 +3,9 @@ mod serde;
33
44use std:: collections:: BTreeSet ;
55use std:: collections:: hash_map:: Entry ;
6- use std:: io;
76use std:: path:: Path ;
87use std:: string:: FromUtf8Error ;
8+ use std:: { io, iter} ;
99
1010use :: serde:: de:: { self , Deserializer , Error as _} ;
1111use :: serde:: ser:: { SerializeSeq , Serializer } ;
@@ -555,19 +555,19 @@ impl SerializedSearchIndex {
555555 ) ;
556556 }
557557 }
558- for ( i , other_generic_inverted_index ) in other. generic_inverted_index . iter ( ) . enumerate ( ) {
559- for ( size , other_list ) in other_generic_inverted_index . iter ( ) . enumerate ( ) {
560- let self_generic_inverted_index = match self . generic_inverted_index . get_mut ( i ) {
561- Some ( self_generic_inverted_index) => self_generic_inverted_index ,
562- None => {
563- self . generic_inverted_index . push ( Vec :: new ( ) ) ;
564- self . generic_inverted_index . last_mut ( ) . unwrap ( )
565- }
566- } ;
567- while self_generic_inverted_index . len ( ) <= size {
568- self_generic_inverted_index . push ( Vec :: new ( ) ) ;
569- }
570- self_generic_inverted_index [ size ] . extend (
558+ if other. generic_inverted_index . len ( ) > self . generic_inverted_index . len ( ) {
559+ self . generic_inverted_index . resize ( other . generic_inverted_index . len ( ) , Vec :: new ( ) ) ;
560+ }
561+ for ( other_generic_inverted_index , self_generic_inverted_index) in
562+ iter :: zip ( & other . generic_inverted_index , & mut self . generic_inverted_index )
563+ {
564+ if other_generic_inverted_index . len ( ) > self_generic_inverted_index . len ( ) {
565+ self_generic_inverted_index . resize ( other_generic_inverted_index . len ( ) , Vec :: new ( ) ) ;
566+ }
567+ for ( other_list , self_list ) in
568+ iter :: zip ( other_generic_inverted_index , self_generic_inverted_index )
569+ {
570+ self_list . extend (
571571 other_list
572572 . iter ( )
573573 . copied ( )
0 commit comments