Well, that’s to be expected - the implementation of map
expects a function that takes ownership of its inputs, so you get a type mismatch.
If you really want to golf things, you can tack your own map_ref
(and friends) onto the Iterator
trait. It’s not very useful - the output can’t reference the input - but it’s possible!
I imagine you could possibly extend this to a combinator that returns a tuple of (Input, ref_map'd output)
to get around that limitation, although I can’t think of any cases where that would actually be useful.