• @KillTheMule
    link
    110 months ago

    2 was good, thanks. 4 needs a tad more thought imho, returning an impl T does have its place, because it makes changing the return type of the function a non-breaking change.

    • @0xDEADBEEFCAFE
      link
      English
      49 months ago

      Number 4 is only about not returning impl Into and instead just returning T.

      • @KillTheMule
        link
        19 months ago

        Hmm, right. I think it still might be warranted in niche cases, but trying to think of such a case made it pretty protracted in my head… maybe when functions can also be called for side effects, and the into conversion is costly and the caller might not care about the return value?

        • @[email protected]
          link
          fedilink
          16 months ago

          Such a case would be the single function having a side effect*. This allows the caller to chose when to execute the side effect or to drop the result without executing it.

          In my opinion that is fine with fn_once but not into because of the implicit contract of these traits.

          * = I’m counting expensive computation, but not allocation and memcopy as a side effect in this comment.