| Crates.io | try-push |
| lib.rs | try-push |
| version | 1.0.2 |
| created_at | 2021-03-05 19:02:14.255366+00 |
| updated_at | 2021-03-05 19:39:18.525099+00 |
| description | A trait for attempting potentially expensive actions |
| homepage | |
| repository | https://github.com/nokel81/try-push/ |
| max_upload_size | |
| id | 364480 |
| size | 5,026 |
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.
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
assert_eq!(vec.try_push(5), Element::NotAdded(5));