• colonial@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    9 months ago

    It wouldn’t be as relevant, since passing a function or method instead of a closure is much easier in Rust - you can just name it, while Ruby requires you to use the method method.

    So instead of .map(|res| res.unwrap()) you can do .map(Result::unwrap) and it’ll Just Work™.

      • colonial@lemmy.world
        link
        fedilink
        arrow-up
        0
        ·
        edit-2
        9 months ago

        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.