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