diff --git a/crates/bevy_ecs/src/schedule/config.rs b/crates/bevy_ecs/src/schedule/config.rs index 708661035ed55..47b72232b1179 100644 --- a/crates/bevy_ecs/src/schedule/config.rs +++ b/crates/bevy_ecs/src/schedule/config.rs @@ -83,14 +83,15 @@ impl SystemConfigs { }) } - pub(crate) fn in_set_inner(&mut self, set: BoxedSystemSet) { + /// Adds a new boxed system set to the systems. + pub fn in_set_dyn(&mut self, set: BoxedSystemSet) { match self { SystemConfigs::SystemConfig(config) => { config.graph_info.sets.push(set); } SystemConfigs::Configs { configs, .. } => { for config in configs { - config.in_set_inner(set.dyn_clone()); + config.in_set_dyn(set.dyn_clone()); } } } @@ -167,7 +168,11 @@ impl SystemConfigs { } } - pub(crate) fn run_if_inner(&mut self, condition: BoxedCondition) { + /// Adds a new boxed run condition to the systems. + /// + /// This is useful if you have a run condition whose concrete type is unknown. + /// Prefer `run_if` for run conditions whose type is known at compile time. + pub fn run_if_dyn(&mut self, condition: BoxedCondition) { match self { SystemConfigs::SystemConfig(config) => { config.conditions.push(condition); @@ -307,7 +312,7 @@ impl IntoSystemConfigs<()> for SystemConfigs { "adding arbitrary systems to a system type set is not allowed" ); - self.in_set_inner(set.dyn_clone()); + self.in_set_dyn(set.dyn_clone()); self } @@ -341,7 +346,7 @@ impl IntoSystemConfigs<()> for SystemConfigs { } fn run_if(mut self, condition: impl Condition) -> SystemConfigs { - self.run_if_inner(new_condition(condition)); + self.run_if_dyn(new_condition(condition)); self } diff --git a/crates/bevy_ecs/src/schedule/schedule.rs b/crates/bevy_ecs/src/schedule/schedule.rs index 4f1b90ff9050d..18e230114e69d 100644 --- a/crates/bevy_ecs/src/schedule/schedule.rs +++ b/crates/bevy_ecs/src/schedule/schedule.rs @@ -532,14 +532,14 @@ impl ScheduleGraph { if more_than_one_entry { let set = AnonymousSet::new(); for config in &mut configs { - config.in_set_inner(set.dyn_clone()); + config.in_set_dyn(set.dyn_clone()); } let mut set_config = set.into_config(); set_config.conditions.extend(collective_conditions); self.configure_set(set_config); } else { for condition in collective_conditions { - configs[0].run_if_inner(condition); + configs[0].run_if_dyn(condition); } } }