Some structs like Systems or Plugins can be inserted via tuple, but not Resources, which greatly annoyed me.
Fixed #16398
Solution
I very closely copied what plugins do in bevy_app. I also modified every function signature relating to inserting Resources.
However, I still have some open questions about my implementation:
I dont exaclty know what #[track_caller] does. I tried faithfully keeping that functionality, but its possible that I broke something.
We've chatted about this before, and the SME-ECS (and Cart) aren't fully sold that this is worth the added compile time. To move forward here, you'll need to measure the impact.
Objective
Some structs like
System
s orPlugin
s can be inserted via tuple, but notResource
s, which greatly annoyed me. Fixed #16398Solution
I very closely copied what plugins do in
bevy_app
. I also modified every function signature relating to insertingResource
s. However, I still have some open questions about my implementation:#[track_caller]
does. I tried faithfully keeping that functionality, but its possible that I broke something.World::insert_resource_with_caller
is now unused, and I dont what went wrongApp::init_resource
, which dont currently support tuples. Should I also rework these functions?insert_resource
toinsert_resource
to reflect this new feature?Testing
I added an example in the documentation, and two new unit tests