This is in fact more readable, thank you.

I still don’t know that I find it more intuitive or readable than the simple loop, but it’s much less awful than before.

I am sure there's a way to filter directly on cond variable and collect isn't needed most of the time since iterators are way more useful in general (unless you want to print that data)

   items.filter(cond).map(Pointer::idx)
I know this is possible, but you would have to consult some rust wizard for this.