All of the types I've included above I think are candidates for having a Borrow implementation, as they AIUI satisfy the Borrow trait requirements of &Self "behaving like" &T.
Is this trait impl omission deliberate (am I missing a reason why they shouldn'timpl Borrow?) or has just nobody seen the need to request/provide these implementations yet? Obviously &T is the canonical Borrow type, and since all of these types impl Deref, getting &T out is trivial.
Note that for each of these except for IoSlice/IoSliceMut, a generic Borrow<T> implementation is technically a blanket impl and thus a breaking change, because it would conflict with something like
There is (some occasional) precedent of such impls being added after-the-fact (i.e. after the Self type was stabilized) nonetheless, but this might be a small concern. See also this URLO thread of mine.
There are already some bad interactions between the Borrow traits and the RefCell methods with the same names, like:
Also, existing my_ref.borrow() calls might be trying to get some otherBorrow<_> for T, not necessarily just &T. Maybe you could make that a generic pass-through too, but I wouldn't be too surprised if that overlaps impls.