Smart pointer which owns its target

Rather than P: Deref<Target=T> + IntoOwned<T>, you want P: Borrow<T> + IntoOwned<T>. Borrow has a blanket impl impl<T: ?Sized> Borrow<T> for T.

3 Likes