Add RenderNodeVariantOverridesApplier API #16
Merged
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.
Bug/issue #, if applicable: rdar://83564599
Summary
Adds the
RenderNodeVariantOverridesApplierAPI, which applies a variants override patch onto an encoded render node:It makes use of the (new) underlying
JSONPatchApplierAPI, which generically applies JSON patches over encoded JSON.The addition of this API is in support of future
NavigatorIndexchanges to support the multi-language render JSON model.Changes to patch APIs
The
JSONPatchOperationandVariantPatchOperationAPIs now support the JSON patchremoveoperation, which was needed to remove thevariantOverridesproperty in render nodes after applying a patch. They have also been converted to enums since these operations carry different associated values (e.g., aremovedoesn't have avalue).Dependencies
None.
Testing
There should be no user-facing changes. The
RenderNodeVariantOverridesApplierAPI should work as expected.Checklist
./bin/testscript and it succeeded