3 releases (breaking)

0.3.0 Oct 22, 2024
0.2.0 Oct 22, 2024
0.1.0 Oct 22, 2024

#435 in Procedural macros

21 downloads per month

MIT license

9KB
239 lines

TypePipe!

Ever wanted the ability to curry type signatures?

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>>

Dependencies

~215–660KB
~16K SLoC