Improve parsing options support. #2042
Draft
+238
−50
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 PR improves the parsing options by adding deferred parsing and incremental parsing.
The parsing procedure has been extracted from the
setRawDataprocedure and placed intoparsePacket.The new procedure can be called repeatedly on the same packet with different options and will incrementally parse the packet.
The packet parsing options have been grouped into the struct
ParseOptionsfor better method readability.The PR introduces new constructors and overloads to
PacketandsetRawPacketthat take the parse options structure or aNoParseTagif parsing is to be deferred.