• λλλ
      link
      7
      edit-2
      5 months ago

      Do you mind explaining? Maybe with the context of another languages equivalent?

      • @[email protected]
        link
        fedilink
        English
        135 months ago
        let bar: Result<T, E> = ...;
        let foo = bar.inspect(|value| log::debug("{}", value));
        

        is equivalent to

        let bar: Result<T, E> = ...;
        let foo = bar.map(|value| {
            log::debug("{}", value);
            value
        });
        
        • λλλ
          link
          15 months ago

          Elegant. Thanks!

        • @xav
          link
          15 months ago

          Warning: in the first case “value” is actually a shared reference, not a value.

      • @[email protected]
        link
        fedilink
        25 months ago

        Looks vaguely like Stream::peek from Java, I think? There’s an equivalent method in Iterator::inspect.

      • @owsei
        link
        1
        edit-2
        5 months ago

        it’s just a way to use map with a reference instead of the value, by what I understood.

        could be usefull for logging values in a Result so you can see it. However I think you can already do that by just mapping and returning the variable.