Hacker News new | ask | show | jobs
by Dr_Emann 1945 days ago
Expand does actually exist in the standard library, but it's a bit of a strange incantation...

    vec.splice(i..i, std::iter::repeat(0).take(length));
This replaces the values in range `i..i` (an empty range starting at i) with `length` copies of `0`.
1 comments

That's not exactly the same. Splice returns an iterator, it doesn't modify the collection in place.
Yes it does exactly that. It returns an iterator over the removed items, but when that iterator is dropped, it modifies the collection. See https://play.rust-lang.org/?version=stable&mode=debug&editio...
Huh... I guess I should read the docs more carefully next time; I clearly misunderstood them.