Hacker News new | past | comments | ask | show | jobs | submit login

It doesn't copy the elements if the source vector is already at max capacity, which you can often arrange for beforehand.



For example, by explicitly calling shrink_to_fit. So you either have fragmentation, or an extra copy if you're not careful, but none of the solutions let you forget about the detail entirely.


If you look at the source for into_boxed_slice, it calls shrink_to_fit at the beginning before doing anything else. Hence the documentation is slightly wrong, and no copies occur.

Edit: I submitted a PR to clear up the docs: https://github.com/rust-lang/rust/pull/120110


thank you!


Or alternatively, the vector was created with `Vec::with_capacity()` or `ExactSizeIterator::collect()`, and had the correct capacity all along.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: