tap icon indicating copy to clipboard operation
tap copied to clipboard

Add traits for inline `AsRef` and `AsMut`.

Open KevinMGranger opened this issue 1 year ago • 0 comments

<T as AsRef<U>>.as_ref(t) is too verbose, and breaks reading right-to-left. I figured this calls for a helper trait for AsRef and AsMut invocations.

Type inference is pretty good for spots that need you to pass a reference, but for methods on those references, it's not so great. I encountered this when trying to use Path::display on an OsStr through impl AsRef<Path> for OsStr.

Naming

I'm not married to the trait or method names. I'm actually torn between Reffed::reffed and AsA::as_a. Thoughts?

Documentation

Is what I wrote sufficient? I copied a bit of the style from Conv, but mine is more sparse.

KevinMGranger avatar Aug 14 '23 23:08 KevinMGranger