3 releases (breaking)
0.3.0 | Nov 12, 2024 |
---|---|
0.2.0 | Mar 26, 2022 |
0.1.0 | Mar 26, 2022 |
#567 in Algorithms
144 downloads per month
Used in 3 crates
(via broccoli)
4KB
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);
}