Represents the number of types of a single element inside a vector or array, without
taking into account the vector or array length.
For example, in the array [(u8, u16, [u32; 4]); 8], the element types length is 3:
Represents the total number of fields required to represent a single entry of an array or vector.
For example in the array [(u8, u16, [u32; 4]); 8] the elements flattened length is 6:
Represents the total number of fields required to represent the entirety of an array or vector.
For example in the array [(u8, u16, [u32; 4]); 8] the flattened length is 48: 8 * (1 + 1 + 4).
Represents the length of an array or vector as seen from a user’s perspective.
For example in the array [(u8, u16, [u32; 4]); 8], the semantic length is 8.
Represents the number of value/memory slots required to represent an array or vector.
The semi-flattened length can be computed by multiplying the semantic length by
the element types length.