Suppose you have a trait Trait and some type T: Trait, this trait is
automatically implemented for Trait itself, &Tr, Box<Tr>
, Arc<Tr>
, &T,
Box<T>
, Arc<T>
, etc. When DerefPlusSelf is implemented for T, this trait
is also implemented for T.
The trait automatically implements for D: Deref with D::Target. User may add
implementation of DerefPlusSelf<Target = Type> for some Type
via enable_deref_for_self, where Type can be str, [T], or a local type
(i.e. not an upstream type).
This trait is automatically implemented for the Trait ifself, any type which
implements Trait, and any BorrowMut of the Trait.
This trait is automatically implemented for the Trait ifself, any type which
implements Trait, and any Borrow of the Trait.