🐎 TAG_Compound uses OrderedDict for speed #139
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.
The TAG_Compound now uses an OrderedDict internally for its mapping
between tag names and tags, to allow for much faster lookup by tag name.
Looking up tags by index number functions as before.
The .tags list has been changed into a read-only property (now a tuple).
The method for adding new tags to a TAG_Compound is by direct item
assignment.
A number of tests used the internal .tags list of TAG_Compound, they
have been changed to use item assignment.
This is very much a change in API, I don't know what other projects use this library, assuming that .tags is a mutable list. Certainly some (but not many) of the tests that make arbitrary compounds used that.
I'm building a project that is using the anvil library, and making these changes to NBT cut the run times in half.
So it might be useful to those upstream?