colvec-0.0.1 has been yanked.
Column Vec
colvec provides a derive macro which generates a Vec-like data structure, except with a transposed row / column layout. This means you can take a slice across an entire column of a single struct field. ColVec has the same struct size (size_of::<Vec<T>>()) and growth factor as Vec, and uses a single contiguous allocation. ColVec can be smaller than Vec when the Struct has padding, since no padding is needed in the transposed layout [^1]. ColVec can be faster to iterate than Vec when only accessing a single struct field column because the unused data in the other fields do not occupy the cache line, and thus has reduced cache eviction.
[^1]: To ensure proper alignment, the minimum capacity is the item alignment.
Example
let mut col=new;
col.push;
col.push;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;