| Crates.io | revec |
| lib.rs | revec |
| version | 0.3.0 |
| created_at | 2022-03-26 18:11:52.719639+00 |
| updated_at | 2024-11-12 00:50:31.847317+00 |
| description | Convert a Vec to a Vec provided vec is empty |
| homepage | |
| repository | https://github.com/tiby312/revec |
| max_upload_size | |
| id | 556875 |
| size | 4,527 |
Allows a user to safely convert between Vec<A> and Vec<B> provided the vec is empty is A and B have the same memory size and alignment.
fn test() {
let v:Vec<*mut usize> = Vec::new();
assert_eq!(v.capacity(),0);
let k = &mut [5usize, 4, 3, 2, 1];
let mut v2:Vec<&usize>=convert_empty_vec(v);
v2.extend(k.iter());
assert_eq!(*v2[0], 5);
v2.clear();
assert!(v2.capacity()>=5);
let mut v3:Vec<&mut usize>=convert_empty_vec(v2);
assert!(v3.capacity()>=5);
let k = &mut [5usize, 4, 3, 2, 1];
v3.extend(k.iter_mut());
assert_eq!(*v3[0], 5);
}