Skip to content

Releases: ejpcmac/typed_struct

0.3.0

15 Feb 20:07
v0.3.0
7c26d16
Compare
Choose a tag to compare

Added

  • [Plugin] Add the field/4 callback with an additional env argument. This is
    the same as field/3 but gives access to the environment of the field
    definition.

Deprecated

  • [Plugin] Deprecate the field/3 callback in favour of field/4. You should
    migrate to field/4, simply by adding _env as the last argument in your
    implementation. Currently, if a plugin implements field/3, field/4 is
    derived from it and a compilation warning is emitted. field/3 will be
    removed in TypedStruct 1.0.0.

Removed

  • Drop support for unsupported Elixir versions in the tests and CI. The
    library may still be compatible, but this is not tested.

Fixed

  • Fix the lexical scope of the typestruct block, so it covers it completely.
    Previously, anything defined inside the typedstruct block, such as
    aliases, would not be available for the field definitions. See #22 and #21
    for details.
  • Fix a typo in the documentation.

0.2.1

19 Jul 05:11
v0.2.1
3b63b1a
Compare
Choose a tag to compare

Added

  • Add the module: ModuleName top-level option to create the typed struct in a
    submodule.

Changed

  • Update the @typedoc example in the documentation to put it inside the
    typedstruct block and not above. While putting it above works in the
    general case, it is mandatory to put it inside the block when defining a
    submodule.

0.2.0

31 May 16:39
v0.2.0
cd37656
Compare
Choose a tag to compare

Added

  • Add a plugin API.

Removed

  • Remove reflection support through the __keys__/0, __defaults__/0 and
    __types__/0 function which where defined by TypedStruct in the user
    modules. If you rely on these functions, please use the
    TypedStructLegacyReflection
    plugin to enable them again, and consider creating a plugin for your needs.

Fixed

  • Do not enforce fields with a default value set to nil (fixes #14).
  • Prefix all internal module attributes and clean them after use (fixes #15).
  • Create a scope in the typedstruct block to avoid import leaks.

0.1.4

13 Nov 07:47
v0.1.4
b972eb8
Compare
Choose a tag to compare

Added

  • Add the ability to generate an opaque type (#10)

0.1.3

05 Sep 20:07
v0.1.3
7674d96
Compare
Choose a tag to compare

Fixed

  • Fix a bug where fields with default: false where still enforced when setting enforce: true at top-level

0.1.2

05 Sep 19:34
v0.1.2
c11d6bb
Compare
Choose a tag to compare

Added

  • Add the ability to enforce keys by default (#6)

Fixed

  • Clarify the documentation about runtime: false

0.1.1

20 Jun 18:55
v0.1.1
6113896
Compare
Choose a tag to compare

Fixed

  • Do not make the type nullable when there is a default value

0.1.0

18 Jun 20:48
v0.1.0
8c1f6f5
Compare
Choose a tag to compare

Added

  • Initial version
    • Struct definition
    • Type definition
    • Default values
    • Enforced keys