feat: accept unknown enum values in fromObject #1793
Merged
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.
In official protobuf implementations unknown numeric enum values are accepted and not discarded. Changing the behavior of
fromObject
to store unknown enum values.toObject
will also dump them as is (without converting to a string, because it does not know the string representation for an unknown enum value).I'm not changing
verify
which still won't accept unknown values.Since the changes in the code generators are hard to read, here are some examples.
Imagine this proto:
This is the diff in the generated code for
fromObject
andtoObject
, explanations are below.Previously, this was the code generated for
fromObject
andtoObject
(comments added):With the changes, the following code will be produced: