@@ -164,7 +164,7 @@ impl<K: Ord, V> SortedMap<K, V> {
164164 /// It is up to the caller to make sure that the elements are sorted by key
165165 /// and that there are no duplicates.
166166 #[ inline]
167- pub fn insert_presorted ( & mut self , mut elements : Vec < ( K , V ) > ) {
167+ pub fn insert_presorted ( & mut self , elements : Vec < ( K , V ) > ) {
168168 if elements. is_empty ( ) {
169169 return ;
170170 }
@@ -173,28 +173,28 @@ impl<K: Ord, V> SortedMap<K, V> {
173173
174174 let start_index = self . lookup_index_for ( & elements[ 0 ] . 0 ) ;
175175
176- let drain = match start_index {
176+ let elements = match start_index {
177177 Ok ( index) => {
178- let mut drain = elements. drain ( .. ) ;
179- self . data [ index] = drain . next ( ) . unwrap ( ) ;
180- drain
178+ let mut elements = elements. into_iter ( ) ;
179+ self . data [ index] = elements . next ( ) . unwrap ( ) ;
180+ elements
181181 }
182182 Err ( index) => {
183183 if index == self . data . len ( ) || elements. last ( ) . unwrap ( ) . 0 < self . data [ index] . 0 {
184184 // We can copy the whole range without having to mix with
185185 // existing elements.
186- self . data . splice ( index..index, elements. drain ( .. ) ) ;
186+ self . data . splice ( index..index, elements. into_iter ( ) ) ;
187187 return ;
188188 }
189189
190- let mut drain = elements. drain ( .. ) ;
191- self . data . insert ( index, drain . next ( ) . unwrap ( ) ) ;
192- drain
190+ let mut elements = elements. into_iter ( ) ;
191+ self . data . insert ( index, elements . next ( ) . unwrap ( ) ) ;
192+ elements
193193 }
194194 } ;
195195
196196 // Insert the rest
197- for ( k, v) in drain {
197+ for ( k, v) in elements {
198198 self . insert ( k, v) ;
199199 }
200200 }
0 commit comments