0.2.0 - 2026-04-19
Added
sourceoption for:union,:list, and:tupletypes.validatefunctions can now return:ok,:error, or{:error, reason}in addition totrue/false.{:error, reason}allows custom error reasons;:ok/:errormirrortrue/false.
Changed
- Dynamic maps (
keys/values) now collect all entry errors instead of stopping at the first one, consistent with howfieldsbehave.
Documentation
- New guide: using Mold with HTTP clients.
- New guide: formatting errors.
- Trace examples in README and
parse!/2docstring now use atoms instead of strings.
0.1.2 - 2026-04-10
Fixed
- Error trace now uses schema field names (atoms like
[:address, :city]) instead of raw source keys (strings like["address", "city"]) or opaque Access function references ([#Function<...>]). - Dynamic map trace: key parse errors no longer include the unparsed key in the trace; value errors use the parsed key.
Changed
- Trace building now uses prepend + reverse internally instead of append.
0.1.1 - 2026-04-10
Fixed
nilable: truecombined withdefaultno longer replaces an explicitnilwith the default value. The default now only applies to missing fields.- Documentation updated to reflect the corrected
nilable+defaultinteraction.
0.1.0 - 2026-04-06
Initial release.
Added
Mold.parse/2andMold.parse!/2.- Built-in types:
:string,:integer,:float,:boolean,:atom,:date,:datetime,:naive_datetime,:time. - Collections:
:map(fields and homogeneous),:list,:tuple. - Union types, custom parse functions, recursive types.
- Shared options:
nilable,default,in,transform,validate. - Source key mapping with propagation to nested structures.
- Rich error traces with path to the failing value.