Optimize `Vec::insert` for the case where `index == len`. By skipping the call to `copy` with a zero length. This makes it closer to `push`. I did this recently for `SmallVec` (https://github.com/servo/rust-smallvec/pull/282) and it was a big perf win in one case. Although I don't have a specific use case in mind, it seems worth doing it for `Vec` as well. Things to note: - In the `index < len` case, the number of conditions checked is unchanged. - In the `index == len` case, the number of conditions checked increases by one, but the more expensive zero-length copy is avoided. - In the `index > len` case the code now reserves space for the extra element before panicking. This seems like an unimportant change. r? `@cuviper` |
||
|---|---|---|
| .. | ||
| cow.rs | ||
| drain.rs | ||
| drain_filter.rs | ||
| in_place_collect.rs | ||
| in_place_drop.rs | ||
| into_iter.rs | ||
| is_zero.rs | ||
| mod.rs | ||
| partial_eq.rs | ||
| set_len_on_drop.rs | ||
| spec_extend.rs | ||
| spec_from_elem.rs | ||
| spec_from_iter.rs | ||
| spec_from_iter_nested.rs | ||
| splice.rs | ||