Change to improve working with unkeyed records #97
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request aims to make it easier to work with unkeyed records.
If all records are unkeyed, simply use
Unit
serializers and deserializers. These are available implicitly asSerializer.unit
andDeserializer.unit
, so you can useProducerSettings[Unit, V]
andConsumerSettings[Unit, V]
.If some records are keyed and some are not, use
Serializer#option
andDeserializer#option
, also available implicitly viaSerializer.option
andDeserializer.option
. These serializers representNone
asnull
in serialized form. Similarly, you can use these viaProducerSettings[Option[K], V]
andConsumerSettings[Option[K], V]
.For more complex types and cases, there is
Serializer.asNull[A]
andSerializer.empty[A]
which serializes arbitrary values of a given type asnull
or the emptyArray[Byte]
, respectively.For parity, similar additions have been made to
HeaderSerializer
andHeaderDeserializer
.Detailed changes:
Deserializer#option
, andDeserializer.option
andunit
.HeaderDeserializer#option
andHeaderDeserializer.option
andunit
.Serializer#option
, andSerializer.option
,asNull
,empty
andunit
.HeaderSerializer#option
, andSerializer.option
,asNull
,empty
andunit
.Fixes #96.