I was reading the hyperium/http source code and I found this:
pub fn put<T>(uri: T) -> Builder
where
Uri: TryFrom<T>,
<Uri as TryFrom<T>>::Error: Into<crate::Error>,
{
Builder::new().method(Method::PUT).uri(uri)
}
In this snippet, Uri is a type and T a generic element.
I have always seen the construction where T: SomeTrait, but not SomeType: SomeTrait<T>.
Does this construction have a name and is it documented somewhere?