Skip to content

Latest commit

 

History

History
42 lines (31 loc) · 1.34 KB

README.md

File metadata and controls

42 lines (31 loc) · 1.34 KB

MakeEnumerable

Travis Hex.pm Version license

Makes your structures enumerable!

The MakeEnumerable module injects defimpl Enumerable for your structs, as structs are basically maps with special tag (member) __struct__. The module hides the tag __struct__ and delegates all other members to map to be Enumerable.

defmodule Bar do
  use MakeEnumerable
  defstruct foo: "a", baz: 10
end

iex> import Bar
iex> Enum.map(%Bar{}, fn({k, v}) -> {k, v} end)
[baz: 10, foo: "a"]

Installation

If available in Hex, the package can be installed by adding make_enumerable to your list of dependencies in mix.exs:

def deps do
  [
    {:make_enumerable, "~> 0.0.1"}
  ]
end

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/make_enumerable.