Destructure
Adds Javascript-style destructuring to Elixir. Instead of:
def full_name(%{first_name: first_name, last_name: last_name}) do
"#{first_name} #{last_name}"
endYou can write:
import Destructure
def full_name(d%{first_name, last_name}) do
"#{first_name} #{last_name}"
endIt also works in case statements, like this:
case post(url, data) do
{:ok, d%{body}} -> # instead of {:ok, %{body: body}}
# use body variable
_other ->
# ...
endUnlike Javascript, you can still bind custom variables:
d(%{first, last, email: mail}) = %{...}See the Hex Documentation for more details.
Installation
-
Add
destructureto your list of dependencies inmix.exs:
```elixir
def deps do
[{:destructure, "~> 0.1.1"}]
end
```-
Ensure
destructureis started before your application:
```elixir
def application do
[applications: [:destructure]]
end
```