exconstructor alternatives and similar packages
Based on the "Algorithms and Data structures" category.
Alternatively, view exconstructor alternatives based on common mentions on social networks and blogs.
-
erlang-algorithms
Implementations of popular data structures and algorithms. -
datastructures
A collection of protocols, implementations and wrappers to work with data structures. -
MapDiff
Calculates the difference between two (nested) maps, and returns a map representing the patch of changes. -
exmatrix
ExMatrix is a small library for working with matrices, originally developed for testing matrix multiplication in parallel. -
parex
Parallel Execute (Parex) is an Elixir module for executing multiple (slow) processes in parallel. -
blocking_queue
BlockingQueue is a simple queue implemented as a GenServer. It has a fixed maximum length established when it is created. -
ecto_materialized_path
Tree structure, hierarchy and ancestry for the ecto models. -
cuid
Collision-resistant ids optimized for horizontal scaling and sequential lookup performance, written in Elixir. -
ratio
Adds Rational Numbers and allows them to be used in common arithmatic operations. Also supports conversion between Floats and Rational Numbers. -
paratize
Elixir library providing some handy parallel processing (execution) facilities that support configuring number of workers and timeout. -
clope
Elixir implementation of CLOPE: A Fast and Effective Clustering Algorithm for Transactional Data.
Get performance insights in less than 4 minutes
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest. Visit our partner's website for more details.
Do you think we are missing an alternative of exconstructor or a related project?
README
ExConstructor
ExConstructor is an Elixir library that makes it easy to instantiate structs from external data, such as that emitted by a JSON parser.
Add use ExConstructor
after a defstruct
statement to inject
a constructor function into the module.
The generated constructor, called new
by default,
handles map-vs-keyword-list, string-vs-atom-keys, and
camelCase-vs-under_score input data issues automatically,
DRYing up your code and letting you move on to the interesting
parts of your program.
Example
defmodule TestStruct do
defstruct field_one: nil,
field_two: nil,
field_three: nil,
field_four: nil
use ExConstructor
end
TestStruct.new(%{"field_one" => "a", "fieldTwo" => "b", :field_three => "c", :FieldFour => "d"})
# => %TestStruct{field_one: "a", field_two: "b", field_three: "c", field_four: "d"}
Full Documentation
Full ExConstructor documentation is available on Hexdocs.pm.
Contributors
Many thanks to those who've contributed to ExConstructor:
How to Contribute
My favorite contributions are PRs with code that matches project style, and that come with full test coverage and documentation. I have a hard time saying no to them.
Feature requests are also welcome, but the timeline may be much longer.
Bug reports are great -- please include as much information as possible (Erlang/Elixir/Mix version, dependencies and their versions, minimal test case, etc.) and I will be much quicker in resolving the issue.
Authorship and License
ExConstructor is copyright 2016-2017 Appcues, Inc.
ExConstructor is released under the MIT License.
*Note that all licence references and agreements mentioned in the exconstructor README section above
are relevant to that project's source code only.