Make zero-capacity ArrayVec a zero-sized type.

This commit is contained in:
Clar Charr
2017-09-26 11:55:00 -04:00
committed by Clar Fon
parent 16aabf7c2c
commit 55bedc922a
2 changed files with 24 additions and 3 deletions
+5
View File
@@ -139,6 +139,11 @@ fn test_compact_size() {
println!("{}", mem::size_of::<ByteArray>());
assert!(mem::size_of::<ByteArray>() <= 8);
// 1 enum tag + 1 drop flag
type EmptyArray = ArrayVec<[u8; 0]>;
println!("{}", mem::size_of::<EmptyArray>());
assert!(mem::size_of::<EmptyArray>() <= 2);
// 12 element size + 1 enum tag + 3 padding + 1 len + 1 drop flag + 2 padding
type QuadArray = ArrayVec<[u32; 3]>;
println!("{}", mem::size_of::<QuadArray>());