Skip to content

Latest commit

 

History

History
45 lines (32 loc) · 938 Bytes

README.md

File metadata and controls

45 lines (32 loc) · 938 Bytes

StructConstructor

StructConstructor allows you to declare structs using Ecto.Schema and generate constructor functions that will take care of coercion and handling various input formats (maps, keyword lists with string or atom keys).

Documentation can be found at https://hexdocs.pm/struct_constructor.

Installation

Add struct_constructor to your list of dependencies in mix.exs:

def deps do
  [
    {:struct_constructor, "~> 0.2.0"}
  ]
end

Usage

Define a typed structure:

defmodule User do
  use StructConstructor do
    field :name, :string
    field :age, :integer
  end
end

Initialize your structure with external input:

User.new(%{"name" => "Alex", "age" => "27"})
# => %User{age: 27, name: "Alex"}

Note, that :age attribute was automatically converted to integer.

License

MIT License, Copyright (c) 2017-2018 SaleMove