Support encoding and decoding XML unions #52
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.
Not a complicated change. I also remove all traces of FromXml in this PR, since those were left behind after the refactor. We no longer use them, and don't want the burden of maintaining the macros.
The encoding/decoding impl is very similar to the one for JSON. Again ignoring the switch field on decoding, since the information is present in the tag name.
I want to improve the support of unions in custom structs, write a few more tests, implement a system for complete decoding fallbacks, and then I think encoding is pretty much complete. This is a part of the OPC-UA standard that is hard to implement and quite core, so it's nice to have fairly complete support in this library. There are probably some details around matrices and stuff that we don't support yet, but without a clear example I don't really know what to do there. We'll wait until we actually get a user that needs that stuff before we invest in it, I think.