Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

v0.4.1 - 2020-05-31

Fixed

  • Some generated docs failed doctest for arity 0
  • Some generated docs failed doctest for arity > 1
  • Generated docs failed doctest for nil tag
  • Generated type definition for arity 0 was {:tag} instead of :tag

v0.4.0 - 2020-05-27

Added

  • Support for different arities, forming Sum Arithmetic Data Types.

Changed

  • Total rework of how to specify wrapped types.
  • All types are fully statically defined.
  • Reverted the opaque type generation.
  • Deprecate the use of the examples Tagged.Status and Tagged.Outcome.

Fixed

  • The type requirement on the of: keyword was too strict, breaking nontrivial type specifications.

v0.3.0 - 2020-05-24

Added

  • Generate defguard macros.
  • Option to declare the wrapped type statically.

Changed

  • Generated typedefs are opaque.

v0.2.0 - 2020-05-22

Added

  • Selective function execution in pipes.

Changed

  • Option keywords are now validated on both module and macro level.

Fixed

  • Module level use options was not properly unwrapped.
  • Generated constructor doc examples referenced the wrong module.
  • Code formatting was not configured to keep deftagged without parenthesis.

v0.1.0 - 2020-05-19

Initial package release.

Added

  • Define deftagged macro, used to declare a tagged value tuple.
  • Generate a constructor / destructuring macro for a tag.
  • Generate a typedef for a tag.