CodableCBOREncoder: save order for encoding Codable objects#117
Open
Jnis wants to merge 4 commits intovalpackett:masterfrom
Open
CodableCBOREncoder: save order for encoding Codable objects#117Jnis wants to merge 4 commits intovalpackett:masterfrom
Jnis wants to merge 4 commits intovalpackett:masterfrom
Conversation
hamchapman
reviewed
Apr 8, 2025
Collaborator
hamchapman
left a comment
There was a problem hiding this comment.
Thanks for the PR!
We won't want to merge this as-is because it's imposing quite a large cost on users who don't care about the ordering. Every time a new item is added to a keyed container it has to iterate over the entirety of the existing storage for the container to check if there's already an equivalent key in there, which isn't efficient.
For something like this to be merged I think a couple of things would need to change:
- the behaviour should be opt-in rather than the default
- the implementation should probably use something like an
OrderedDictionaryinternally, or perhaps you'd just need a partial version of that and do something more minimal just using anOrderedSet
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 must send CBOR with a specially ordered data. But current implementation shuffle they everytime.
This fix allow to save order for encoding Codable objects.
ex.: