Then wait no longer! With this crate, you can do things like:
type_pipe! [
T,
MyType<_>,
MyWrapper<_>,
]and this produces:
MyWrapper<MyType<T>>,There's three main macros:
type_pipe: This replaces all _ with the resulting type from the previous line.
This is the example I demonstrated above.
Another example:
T, Wrapped<_, String>, Outer<String, _>->Outer<String, Wrapped<T, String>>
type_pipe_pre: This inserts the resulting type from the previous line into the first position.
T, Wrapped, Outer<String>->Outer<Wrapped<T>, String>T, Wrapped<String>, Outer<String>->Outer<Wrapped<T, String>, String>
type_pipe_post: This inserts the resulting type from the previous line into the last position.
T, Wrapped, Outer<String>->Outer<String, Wrapped<T>>