Skip to content

Conversation

@SkiFire13
Copy link
Contributor

Objective

Solution

  • Make IntoSystem::pipe and IntoSystem::map return two new (possibly-ZST) types that implement IntoSystem and whose into_system method return the systems that were previously being returned by IntoSystem::pipe and IntoSystem::map
  • Don't eagerly call IntoSystem::into_system on the argument given to RunSystemCachedWith::new to avoid losing its ZST-ness

Testing

  • Added a regression test for each issue

Migration Guide

  • IntoSystem::pipe and IntoSystem::map now return IntoPipeSystem and IntoAdapterSystem instead of PipeSystem and AdapterSystem. Most notably these types don't implement System but rather only IntoSystem.

@alice-i-cecile alice-i-cecile added this to the 0.15 milestone Sep 24, 2024
@alice-i-cecile alice-i-cecile added C-Bug An unexpected or incorrect behavior A-ECS Entities, components, systems, and events labels Sep 24, 2024
Copy link
Member

@alice-i-cecile alice-i-cecile left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very nice, thank you! I particularly appreciate the regression tests.

@alice-i-cecile alice-i-cecile added this pull request to the merge queue Sep 24, 2024
@alice-i-cecile alice-i-cecile added the S-Ready-For-Final-Review This PR has been approved by the community. It's ready for a maintainer to consider merging it label Sep 24, 2024
Merged via the queue into bevyengine:main with commit fb9aaa1 Sep 24, 2024
@SkiFire13 SkiFire13 deleted the system-cached-followup branch September 24, 2024 18:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-ECS Entities, components, systems, and events C-Bug An unexpected or incorrect behavior S-Ready-For-Final-Review This PR has been approved by the community. It's ready for a maintainer to consider merging it

Projects

None yet

Development

Successfully merging this pull request may close these issues.

run_system_cached API will reject systems created by pipe and map

3 participants