@@ -164,7 +164,7 @@ impl<K: Ord, V> SortedMap<K, V> {
164
164
/// It is up to the caller to make sure that the elements are sorted by key
165
165
/// and that there are no duplicates.
166
166
#[ inline]
167
- pub fn insert_presorted ( & mut self , mut elements : Vec < ( K , V ) > ) {
167
+ pub fn insert_presorted ( & mut self , elements : Vec < ( K , V ) > ) {
168
168
if elements. is_empty ( ) {
169
169
return ;
170
170
}
@@ -173,28 +173,28 @@ impl<K: Ord, V> SortedMap<K, V> {
173
173
174
174
let start_index = self . lookup_index_for ( & elements[ 0 ] . 0 ) ;
175
175
176
- let drain = match start_index {
176
+ let elements = match start_index {
177
177
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
181
181
}
182
182
Err ( index) => {
183
183
if index == self . data . len ( ) || elements. last ( ) . unwrap ( ) . 0 < self . data [ index] . 0 {
184
184
// We can copy the whole range without having to mix with
185
185
// existing elements.
186
- self . data . splice ( index..index, elements. drain ( .. ) ) ;
186
+ self . data . splice ( index..index, elements. into_iter ( ) ) ;
187
187
return ;
188
188
}
189
189
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
193
193
}
194
194
} ;
195
195
196
196
// Insert the rest
197
- for ( k, v) in drain {
197
+ for ( k, v) in elements {
198
198
self . insert ( k, v) ;
199
199
}
200
200
}
0 commit comments