Support using FilteredResources with ReflectResource.#15624
Merged
alice-i-cecile merged 7 commits intobevyengine:mainfrom Feb 16, 2025
Merged
Support using FilteredResources with ReflectResource.#15624alice-i-cecile merged 7 commits intobevyengine:mainfrom
alice-i-cecile merged 7 commits intobevyengine:mainfrom
Conversation
…rces-ReflectResource
BenjaminBrienen
approved these changes
Oct 13, 2024
…rces-ReflectResource
Contributor
BenjaminBrienen
left a comment
There was a problem hiding this comment.
Looks good to me, but I'm not super confident in my ability to judge this code.
| /// Function pointer implementing [`ReflectResource::reflect()`]. | ||
| pub reflect: fn(&World) -> Option<&dyn Reflect>, | ||
| pub reflect: for<'w> fn(FilteredResources<'w, '_>) -> Option<&'w dyn Reflect>, | ||
| /// Function pointer implementing [`ReflectResource::reflect_mut()`]. |
Contributor
There was a problem hiding this comment.
It would be cool if this could be a static assertion
Contributor
Author
There was a problem hiding this comment.
I'm not quite sure what you want asserted? I was trying to copy the style of the existing comments, and I think that's meant to be read as "ReflectResource::reflect_mut() invokes this function pointer".
…rces-ReflectResource # Conflicts: # crates/bevy_ecs/src/system/builder.rs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
Support accessing resources using reflection when using
FilteredResourcesin a dynamic system. This is similar to how components can be queried using reflection when usingFilteredEntityRef|Mut.Solution
Change
ReflectResourcefrom taking&Worldand&mut Worldto takingimpl Into<FilteredResources>andimpl Into<FilteredResourcesMut>, similar to howReflectComponenttakesimpl Into<FilteredEntityRef>andimpl Into<FilteredEntityMut>. There areFromimpls that ensure code passing&Worldand&mut Worldcontinues to work as before.Migration Guide
If you are manually creating a
ReflectComponentFnsstruct, thereflectfunction now takesFilteredResourcesinstead&World, and there is a newreflect_mutfunction that takesFilteredResourcesMut.