Adding Parser.peek_explicit/implicit_tag() #248
Closed
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.
The idea behind this change is such that when encoding an enum (via
CHOICE) using tagging, you can determine which variant to read by
peeking at the tag value without advancing the parser.
peek_explicit_tag()
andpeek_implicit_tag()
return a tuple likesuch that
raw-tag
is the tag as it is read directly from the inputbytes, and
decoded-tag
is the tag converted into the same format thatwould be passed to
Writer.write_explicit_element()
orWriter.write_implicit_element()
.peek_implicit_tag()
requires knowing the type you wish to decodeup-front in order to retrieve an accurate
decoded-tag
value, asimplicit tagging embeds the type within the tag.