Releases: mtrevisan/Boxon
Releases · mtrevisan/Boxon
6.0.1
6.0.0
- Improve error messages and handling in encoding and decoding process.
- Now it's possible to extends a codec.
- Now it's possible to annotate a custom annotation, creating a default.
- Added `ContextParameter` annotation which assigns a constant or calculated value to a parameter that will be added to the context before processing; each context parameter is created before a field is decoded or encoded and removed as soon as the field processing completes.
- Added `enumerations` key in template and configuration descriptions.
- Added `Generator`, to create an annotated `Template` and `ConfigurationMessage` from a description generated by the `Describer` (an enumeration is represented as an array of strings, each string is a pair `()`, where `name` is the name of the enum element, and `value` is a number associated with the element; context data are ignored).
- Added long description and unit of measure attribute to `BindBitSet`, `BindInteger`, `BindObject`, `BindString`, `BindStringTerminated`, `Evaluate`, and `PostProcess` annotations.
- Fixed bug on missing `annotationType` in alternatives' description.
- 2× in speed with respect to previous version due to efficient use of (configurable) memoizers (see `Parser`) and other improvements.
- Custom `DeviceTypes` code length (no longer bounded to be a `byte`).
5.0.0
- Add support for
BindAsArray
andBindAsList
instead of manyBindArray
/BindArrayPrimitive
andBindList
, now removed. - Cleaning and refactoring of various codecs.
- Major reorganization of the code, along with refactor to make it more modular and cohesive, and removal of duplicated code.
- Simplified the exception handling.
- Improved annotation validation by skipping validations for non-library annotations.
- Revised and corrected the reader.
- Added custom validation for custom codecs.
- Added similarity/distance calculation between descriptions.
4.0.0
- Incompatibility between read type, converter input, converter output, validator, and field type is now resolved during core construction, rather than at runtime.
- Fixed error while handling of
SkipBits
andSkipUntilTerminator
to allow processing multiple instances. - Removed useless
BindFloat
andBindDouble
has they are rarely used and can be substituted by the appropriate converters (IntegerToFloatConvert
andLongToDoubleConverter
). - Removed useless
BindByte
,BindShort
,BindInt
, andBindLong
as they can be substituted byBindInteger
. - Renamed
Descriptor
into the more meaningfulDescriber
. - Added builder to
Version
. - Many smells removed, major code refactor.
3.6.0
3.5.1
- Fix error while assessing size value.
- Corrected
NullObjectChoice
andNullObjectChoiceList
type value. - Fix error while putting numeric value in
NumberWriterManager
. - Removed the default on
Skip
size: it was intended to be mandatory. - Fixed bug on evaluating an expression on a deep nested object.
- (minor) Fix missing field name in parser context in
TemplateParser.encode
.
3.5.0
- Added condition on
Checksum
annotation. - Removed
type
andstartValue
fromChecksum
: the same information can be retrieved from the algorithm used, plus, the start value can be embedded in the implemented class. - Fixed a problem while converting a numeric string to number.
- Make record classes work with annotations.
- Slightly reduced memory footprint and improved execution time.
3.4.0
3.3.0
- Added description of configuration.
- Changed the key to reference a configuration (from
start
toshortDescription
). - Corrected generation of parameter
MutuallyExclusive
on configuration description. - Corrected log text on enumeration error.
- Fixed a test that occasionally fails.