How does Rust allocate a zeroed Vec and what does it cost?