Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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`.


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.




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

Search: