• λλλ
    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
      });
      
      • @xav
        link
        15 months ago

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

      • λλλ
        link
        15 months ago

        Elegant. Thanks!

    • @[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.