This crate is useful for preventing expensive actions from taking place while adding elements to collections.
It exports a single trait, TryPush
and has implementations for both Vec<T>
and VecDeque<T>
from the standard library.
```rust use try_push::*;
let mut vec = Vec::with_capacity(4); vec.push(1); vec.push(2); vec.push(3); vec.push(4); // won't reallocate // vec.push(5); // will reallocate
asserteq!(vec.trypush(5), Element::NotAdded(5)); ```