CHANGELOG.md
# 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 `struct`s.
## 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