Introduce StringEncoder and StringDecoder types #44
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.
Motivation
A sibling PR to #41, as part of moving from hand-crafted code that uses
LosslessStringConvertibleconformances on built-in and generated types, we need not just an URI coder, but also a raw string coder.This will be used for encoding and decoding
text/plainbodies, where only primitive types can be used, and are encoded as raw strings.Modifications
Introduced two types,
StringEncoderandStringDecoder. It's very simple, doesn't support containers, only primitive types.Result
Once this lands, it'll allow us to get rid of our ugly marker protocols
_StringConvertibleand_AutoLosslessStringConvertibleand always go throughCodable. More on this in subsequent PRs integrating this logic.Test Plan
Added a rountrip unit test.