- Enhancements
- Add
Construct.Types
withCommaList
,Enum
andUUID
- Add
-
Enhancements
- Add
structure_compile_hook/2
macro to inject code into structures SeeConstruct.Hooks.Map
andConstruct.Hooks.OmitDefault
for examples - Compiler optimization and refactor
- Add
-
Hard-deprecations
- Remove
make_map
option - Remove
empty_values
option
- Remove
-
Bug fixes
- Fix typespecs generation
- Enhancements
- Add
enforce_keys
option to not enforce keys when building struct
- Add
- Enhancements
- Add
only
option toinclude
- Add
-
Enhancements
- Add experimental TypeC behaviour
- Add
error_values
option
-
Bug fixes
- Fix warnings for Elixir 1.10
- Enhancements
- Add typespec generation
- Bug fixes
- Ensure module is compiled when checking for Construct def in
include
macro
- Ensure module is compiled when checking for Construct def in
- Bug fixes
- Ensure module is compiled when checking for Construct def
- Bug fixes
- Ensure module is trying to be compiled when checking that if this module is Construct definition
- Enhancements
- Add
:pid
and:reference
types
- Add
- Bug fixes
- Fix case when non-enumerable values passed in array struct
- Bug fixes
- Fix default values retriever for construct modules as types
- Enhancements
- Derive inheritance
- Add
Construct.types_of/1
- Support to build Construct definitions from raw types
- Support nested types in
Construct.Cast.make/3
-
Enhancements
- Functions as default values
- Structs created from
Kernel.struct/1,2
andmake/1,2
are now equal - Structs with required fields return error when creating from
Kernel.struct/1,2
__construct__(:types)
returns types with defined options%{name => {type, opts}}
- Improve decimals and datetimes handling
- Performance of
Construct.Cast
is increased by almost 1.5x times
-
Bug fixes
- Fix define structure via using
-
Hard-deprecations
- Remove
__structure__/1
and__structure__/2
, use__construct__(:types)
instead
- Remove
- Enhancements
- Add
struct
type
- Add
- Enhancements
- Definition in using macro
- Add able to override fields
- Enhancements
- Make structs from params as a keyword list
- Simplify type declaration in standalone cast
- Accept types declaration as a key value structure
- Enhancements
- Self and cross dependent types