diff --git a/crates/bevy_ecs/src/schedule/run_criteria.rs b/crates/bevy_ecs/src/schedule/run_criteria.rs index 7e3da8a5f3b3f..6fac1067e347c 100644 --- a/crates/bevy_ecs/src/schedule/run_criteria.rs +++ b/crates/bevy_ecs/src/schedule/run_criteria.rs @@ -44,6 +44,19 @@ pub enum ShouldRun { NoAndCheckAgain, } +impl std::ops::Not for ShouldRun { + type Output = Self; + + fn not(self) -> Self { + match self { + ShouldRun::Yes => ShouldRun::No, + ShouldRun::No => ShouldRun::Yes, + ShouldRun::YesAndCheckAgain => ShouldRun::NoAndCheckAgain, + ShouldRun::NoAndCheckAgain => ShouldRun::YesAndCheckAgain, + } + } +} + pub(crate) struct BoxedRunCriteria { criteria_system: Option>, initialized: bool,