Add support for recursively defined message structures. #26
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.
I'm trying to use this library in combination with a relatively complex
protocol, namely the remote execution protocol of the Bazel build sytem:
https://github.com/bazelbuild/remote-apis/blob/master/build/bazel/remote/execution/v2/remote_execution.proto
Some of the dependencies of this protocol contain recursively defined
messages. These currently cause the compiler to emit Elm code that isn't
valid, due to recursive alias types.
Solve this by adding a "%sMessage" custom type for every message. This
causes the recursion to be broken. Let all nested messages use this type
and fix up the encode/decode functions to properly destruct/pack
messages into the custom type.