View Source CHANGELOG

0.4.0

  • Breaking change: Syrup.as_* functions now use structs rather than special tuples to force encodings.
  • Breaking change: Symbols not decoded as atoms are decoded into a Syrup.Types.Symbol struct.
  • The generated encode! function calls out to to_syrup_record or to_syrup_map depending on how the struct is being encoded. The struct module can override these functions to change how the struct encoding is structured.
  • All field functions defined in a Syrup.Record can be overridden. This does not impact the record or map built for encoding.
  • The from_syrup_record function now takes into account the field type if the type is a module with the from_syrup_record function defined. It will call that function with the data to try and reconstitute the Elixir data structure represented by the Syrup record.

0.3.0

  • Breaking change: argument is now field to better align with how we talk about structs.

0.2.0

  • Added Spark-based DSL to create Syrup records as Elixir structs. See Syrup.Record for details.
  • Fixed serializing structs as records. Field names should not be part of the serialization.

0.1.0 - Initial release