Could we avoid `collect()` here? I don't know if there's a vec method that takes an `Iterator<T>`, but if not, there probably should be.