Permit child MastNodeId
s to exceed the MastNodeId
s of their parents
#1542
+85
−10
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.
Describe your changes
Permit child
MastNodeId
s to exceed theMastNodeId
s of their parents during deserialization. This came up in the context of #1534 (see this comment chain for details).Deserialization seems to be the only place where we had a requirement on the mentioned property, judging by the uses of
MastNodeId::from_u32_safe
.A new constructor for
MastNodeId
was introduced that is similar to the existing one, except that it checks against a total expected node count of the forest instead of the current node count of the forest. This allows child IDs to exceed their parent's IDs, such as in a forest likeHowever, we still want forests like this to fail during deserialization:
And the added constructor handles these scenarios and both are tested.
Checklist before requesting a review
next
according to naming convention.