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.
Unreleased
Nothing yet.
v0.5.0
- Added support for fields with default values. (#9)
- Added built-in types
LongLong,UnsignedLongLong,SSizeT, andSizeT(format charsq,Q,n,N). (#9) - Allowed tagged union schemas to mix variable-length and fixed-length variants. (#9)
v0.4.0
- Added
CEncodedannotation for fields that need custom or variable-length binary encoding not expressible as astructformat string. (#8) - Added
RawBytestype for trailing variable-length byte fields. (#8) - Fixed inter-field padding to align based on the next field's natural alignment instead of only the struct's overall alignment. (#8)
- Changed internal schema representation from
CFormatSchematoCEncoderSchema.CFormatfields are now converted toCEncoderSchemainternally. (#8)
v0.3.0
- Changed handling of endians. Byte order and data type sizes are now set at class definition time with
c_endian_typeandc_size_type, instead of being passed as arguments toc_packandc_unpack. This means the binary layout of a model is fully determined by its class definition, not by arguments passed at pack or unpack time. (#6)
v0.2.0
- Added support for Pydantic tagged unions (#5)
v0.1.0
Initial release with all basic functionality:
- Added
CModelbase class - Added
CFormatfor custom field formats - Added built-in field types in
cmodel.types - Added guides and documentation