`Vec::new` itself doesn't allocate, only when pushed to.