You may need to rely on a trait to emulate a generic type constructor; here's one way, perhaps not fully applicable to your use case due to the blanket implementation for T: Sized.
Here's more on the issue generally -- in short, a type parameter like T can only resolve to a single explicit type (including all lifetimes), and not a type constructor like &str or YourType<'_> (over any possible lifetime).
Using an emulated type constructor like this does also tend to wreck inference. Dropping blanket implementations for concrete ones can help at the expense of being unrestrictedly generic. I don't know of any silver bullet though.