Add ability to encode raw binary strings #6
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.
#3 and #5 added support for decoding raw binary strings, i.e. leaving the value a a byte array instead of decoding into a string object.
This PR does the same for encoding -- you can now encode a byte array as a string. To do so, create an instance of the new
RawBinaryString
class that wraps your byte array. This type will encode the byte array contents as a string type.These operations are useful when you must comply with a legacy protocol that uses the string family for values that can contain invalid UTF-8 sequences.
Additionally, during decoding, you can specify the
useRawBinaryStringClass
option for raw binary strings to be decoded as the newRawBinaryString
class. With this, it's now possible to do a complete round-trip decoding and encoding of an object using raw binary strings.