Ah, the vector `.iter()` gives an iterator over references to the elements of the vectors; i.e. `& &str` in this case. Fortunately, something like `filtered.map(|s| *s).to_owned_vec()` to remove one layer of indirection is fine (note that this only works with types like `&str` that *don't* move ownership when transferred like this.)