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.
cc @gmalette two commits that can interest you.
First one heavily simplify the C code and makes it a bit faster. It also unify the two branches (keyword and positional).
Second commit is basically the same code but in Ruby. It performance slightly worse than the "naive positional" but I suspect it performs better than the "naive keywords". So it may be attractive to keep using keywords in your code but have better serialization perf.
It also bypass constructors, like Marshal would, which for a serializer is more correct and robust.