Pipe Operator
Implementation of the pipe operator in Rust as a macro.
I wrote this because of 3 main things:
- You cannot create methods on out of crate types. This means that chaining is harder.
- pipe_trait is nice but it requires currying for multi argument functions.
- I want to write a plug like HTTP server
pipe!
The pipe operator is common in languages like elixir and haskell, they provide clarity and convience.
conn
|> send_resp(404, "Not found")
Examples
The argument will always go into the first function or method call.
pipe! // is equivalent to a.f(value).m()
To get around this we can make it a closure and pass the arg where we want.
pipe! // is equivalent to a.f().m(value)