Serialization and Deserialization for parser Expression #115
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'd like to be able to store a successfully parsed CEL expression by de-/serializing it externally. To be able to use it again, I added the
Program::from(Expression)
.I tried to check whether there are any issues with serde on the Arc-ed types but didn't find why LALRPOP does the wraps. I assume it's a combination of simplifying lifetimes and that it's needed for (potentially) larger ASTs to avoid copying. In the case of most uses of CEL I would expect serialization to be the overhead either way. Maybe it's possible to put a disclaimer in some good place noting that serializing and deserializing potentially could use up much more memory than before the serialization? Either way, it shouldn't have any semantic impact, right?