Add iter_many_manual QueryState method #8772
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.
Objective
QueryState
exposes aget_manual
anditer_manual
method. However, there is nowiter_many_manual
.iter_many_manual
is useful when you have a&World
(eg: theworld
in aScene
) and want to run a query several times on it (eg: iteratively navigate a hierarchy by callingiter_many
onChildren
component).iter_many
's need for a&mut World
makes the API much less flexible. The exclusive access pattern requires doing some very funky dance and excludes a category of algorithms for hierarchy traversal.Solution
iter_many_manual
method toQueryState
Alternative
My current workaround is to use
get_manual
. However, this doesn't benefit from the optimizations onQueryManyIter
.Changelog
iter_many_manual
method toQueryState