This release contains support for Protocol Buffers packed fields, as well as several bugfixes.
It uses Kotlin 1.6.21 by default.
Protobuf packed fields
It is now possible to encode and decode Kotlin classes to/from Protobuf messages with packed repeated fields.
To mark the field as packed, use @ProtoPacked annotation on it.
Note it affects only List and primitive collection such as IntArray types.
With this feature, it is now possible to decode Proto3 messages, where all repeated fields are packed by default.
Protobuf schema generator also supports new @ProtoPacked annotation.
Many thanks to Paul de Vrieze for his valuable contribution!
Other improvements & small features
Incorporate JsonPath into exception messages (#1841)
Mark block in corresponding encodeStructure/decodeStructure extensions as crossinline to reduce amount of bytecode (#1917)
Support serialization of compile-time Collection<E> properties that are not lists at the runtime (#1821)
Best-effort kotlin reflect avoidance in serializer(Type) (#1819)
Bugfixes
Iterate over element indices in ObjectSerializer in order to let the format skip unknown keys (#1916)
Correctly support registering both default polymorphic serializer & deserializer (#1849)
Make error message for captured generic type parameters much more straightforward (#1863)
This release contains support for Protocol Buffers packed fields, as well as several bugfixes.
It uses Kotlin 1.6.21 by default.
Protobuf packed fields
It is now possible to encode and decode Kotlin classes to/from Protobuf messages with packed repeated fields.
To mark the field as packed, use @ProtoPacked annotation on it.
Note it affects only List and primitive collection such as IntArray types.
With this feature, it is now possible to decode Proto3 messages, where all repeated fields are packed by default.
Protobuf schema generator also supports new @ProtoPacked annotation.
Many thanks to Paul de Vrieze for his valuable contribution!
Other improvements & small features
Incorporate JsonPath into exception messages (#1841)
Mark block in corresponding encodeStructure/decodeStructure extensions as crossinline to reduce amount of bytecode (#1917)
Support serialization of compile-time Collection<E> properties that are not lists at the runtime (#1821)
Best-effort kotlin reflect avoidance in serializer(Type) (#1819)
Bugfixes
Iterate over element indices in ObjectSerializer in order to let the format skip unknown keys (#1916)
Correctly support registering both default polymorphic serializer & deserializer (#1849)
Make error message for captured generic type parameters much more straightforward (#1863)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps kotlinx-serialization-json-jvm from 1.3.2 to 1.3.3.
Release notes
Sourced from kotlinx-serialization-json-jvm's releases.
Changelog
Sourced from kotlinx-serialization-json-jvm's changelog.
Commits
9650a28
Add changelog; fix Kotlin update & merge issues4af6772
Merge remote-tracking branch 'origin/master' into 1.3.3-release984345b
Bump version, add lockfilefb02e66
Incorporate JsonPath into exception messages (#1841)a46299e
Expand@SerialInfo
doc with information on targets (#1926)85986d8
Fix broken build after 0542df5b121d80c54936265b0f0eb1de57339692ce8b05f
Docs: Add decodeSequentially possible skipping decodeElementIndex (#1924)0542df5
Don't throw exception on the presence of a ProtoPacked annotation when it is ...9e2040b
Add packed support to the ProtoBufSchemaGenerator.05f0dfd
Mark block in corresponding encodeStructure/decodeStructure extensions as cro...Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)