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.
Previously, if things that utilized this separated match pattern would fail if encountering any unexpected/unknown elements.
EX. when parsing the OpenXR spec,
requirecan containinteraction_profileelements, which causesparse_interface_itemto return None (as an error case), and the rest of the block is never processed.I introduced an alternative pattern to
unwrap_attribute!inparse_attributes!that allowggs to acheive a simliar pattern, without the early return being in the macro, allowing the invoker to regain control of the control flow.This allowed moving all invocations of
parse_interface_itemto more standardparse_*function patterns used elsewhere, allowing it to function simliarly and properly handle unexpected elements.With this patch, the
1.0.33OpenXR specification parses, with the expected non-fatal errors of unrecognized elements that are unique to OpenXR and not Vulkan.