Merged
Conversation
These enums have integer values, so we will be able to use them in Mu to encode protobuf enums including their numerical values.
cb372
added a commit
to higherkindness/skeuomorph
that referenced
this pull request
Dec 11, 2019
See 47degrees/pbdirect#20 Because it is still a plain old sealed abstract class + case object hierarchy, this change will not affect Avro serialization using avro4s (confirmed with manual testing). Note: This change assumes that enumeratum is on Mu's classpath, which is not yet true. PR on the way to add it as a dependency.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Add support for reading and writing enumeratum
IntEnums. These are enumerations whose elements have both a name and an integer value.This means that in Mu we'll be able to preserve the integer values of protobuf enums. Given a
.protofile:, instead of generating:
like we currently do, we can instead encode it as:
This means PBDirect can encode/decode the enum using the correct integer values.
Also if lloydmeta/enumeratum#263 gets merged and released, we will be able to handle enums with aliases.