# CHANGELOG ## [0.5.0] - 2024-10-01 ### Breaking Changes * Variant accessor methods on `Content` and `Value` now return `Option` instead of panicing. ### Added * Serde support for intermediate data types ([!18][_i18]) ## [0.4.0] - 2023-01-29 ### Added * Add support for deriving `FromJava` implementations for more types. It is now possible to use unit structs and structs with unnamed fields. Enums can now be used to deserialize multiple different Java types into a single Rust type. This is intended to be used to support Java polymorphism. * Add `from` attribute to derive macro. This allows a type `T` to implement `FromJava` by deserializing to type `S` and then converting tp `T` where `T` implements `From`. ### Removed * The `anno` field attribute when deriving `FromJava` has now been merged with the `extract` attribute. ### Breaking Changes * As above, the `extract` attribute for fields when deriving `FromJava` now takes a path and an optional annotation number (eg `extract(path::to::function, 2)` instead of there being a separate `anno` attribute for the annotation number. ### Deprecated * `renaming` feature. This was originally behind a feature as it introduced an additional dependency. The functionality it offered is now included in the main jaded-derive crate so this feature is no longer required. Warnings are emitted if the feature is enabled while using a nightly version of rust. ## [0.3.0] - 2021-05-03 ### Added * AnnotationIter for reading data from objects with writeObject methods. This gives a similar interface to ObjectInputStream. * FromJava derive macro to automatically derive FromValue for structs representing classes that have no custom writeObject method. This is behind a feature flag ('derive'). * Add attributes to allow custom writeObject data to be read from values using AnnotationIter. ### Removed * FromPrimitive - It caused problems with blanket implementations for common structs (eg Box). As this was private/internal it should not be a breaking change. ### Breaking Changes * Value::get_annotations now returns an AnnotationIter instead of a Vec. This lets binary data and objects be read directly from the stream. * Rename FromValue to FromJava. This matches the derive macro name and hopefully reduces confusion around deriving one thing to implement another. ## [0.2.0] - 2021-03-15 ### Added * Enabled reading of classes with custom writeObject methods * Add FromValue trait for conversion to Rust structs ### Other changes * Remove Cargo.lock file - I think this is ignored for libraries anyway ### Breaking changes * PrimitiveType::Char now holds a `char` instead of `[u8; 2]` ## [0.1.1] - 2021-02-20 ### Removed * Binary/executable - it was included in initial release by mistake and gave an error when run. ## [0.1.0] - 2021-02-12 Initial Release [_i18]:https://gitlab.com/woollyGibbon/jaded/-/issues/18