Packages

Use Elixir as a scripting language with Hex packages, anywhere on your system. No Mix project required!

Current section

Files

Jump to
teex lib util struct_builder.ex
Raw

lib/util/struct_builder.ex

defmodule Teex.Util.StructBuilder do
@moduledoc false
defmacro __using__(_opts) do
quote do
import Teex.Util.StructBuilder
end
end
defmacro builder() do
quote generated: true do
def build(attrs) do
filtered = Enum.filter(attrs, fn {_k, v} -> !is_nil(v) end)
struct(unquote(__CALLER__.module), filtered)
end
end
end
end