Skip to content

Commit ecccd57

Browse files
newclarityexItsDootalice-i-cecile
authored
Generic system config (#17962)
# Objective Prevents duplicate implementation between IntoSystemConfigs and IntoSystemSetConfigs using a generic, adds a NodeType trait for more config flexibility (opening the door to implement #14195?). ## Solution Followed writeup by @ItsDoot: https://hackmd.io/@doot/rJeefFHc1x Removes IntoSystemConfigs and IntoSystemSetConfigs, instead using IntoNodeConfigs with generics. ## Testing Pending --- ## Showcase N/A ## Migration Guide SystemSetConfigs -> NodeConfigs<InternedSystemSet> SystemConfigs -> NodeConfigs<ScheduleSystem> IntoSystemSetConfigs -> IntoNodeConfigs<InternedSystemSet, M> IntoSystemConfigs -> IntoNodeConfigs<ScheduleSystem, M> --------- Co-authored-by: Christian Hughes <[email protected]> Co-authored-by: Alice Cecile <[email protected]>
1 parent f133106 commit ecccd57

File tree

61 files changed

+285
-463
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+285
-463
lines changed

crates/bevy_app/src/app.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ use bevy_ecs::{
1414
event::{event_update_system, EventCursor},
1515
intern::Interned,
1616
prelude::*,
17-
schedule::{ScheduleBuildSettings, ScheduleLabel},
18-
system::{IntoObserverSystem, SystemId, SystemInput},
17+
schedule::{InternedSystemSet, ScheduleBuildSettings, ScheduleLabel},
18+
system::{IntoObserverSystem, ScheduleSystem, SystemId, SystemInput},
1919
};
2020
use bevy_platform_support::collections::HashMap;
2121
use core::{fmt::Debug, num::NonZero, panic::AssertUnwindSafe};
@@ -302,7 +302,7 @@ impl App {
302302
pub fn add_systems<M>(
303303
&mut self,
304304
schedule: impl ScheduleLabel,
305-
systems: impl IntoSystemConfigs<M>,
305+
systems: impl IntoScheduleConfigs<ScheduleSystem, M>,
306306
) -> &mut Self {
307307
self.main_mut().add_systems(schedule, systems);
308308
self
@@ -330,10 +330,10 @@ impl App {
330330

331331
/// Configures a collection of system sets in the provided schedule, adding any sets that do not exist.
332332
#[track_caller]
333-
pub fn configure_sets(
333+
pub fn configure_sets<M>(
334334
&mut self,
335335
schedule: impl ScheduleLabel,
336-
sets: impl IntoSystemSetConfigs,
336+
sets: impl IntoScheduleConfigs<InternedSystemSet, M>,
337337
) -> &mut Self {
338338
self.main_mut().configure_sets(schedule, sets);
339339
self
@@ -1446,7 +1446,7 @@ mod tests {
14461446
query::With,
14471447
removal_detection::RemovedComponents,
14481448
resource::Resource,
1449-
schedule::{IntoSystemConfigs, ScheduleLabel},
1449+
schedule::{IntoScheduleConfigs, ScheduleLabel},
14501450
system::{Commands, Query},
14511451
world::{FromWorld, World},
14521452
};

crates/bevy_app/src/main_schedule.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use alloc::{vec, vec::Vec};
33
use bevy_ecs::{
44
resource::Resource,
55
schedule::{
6-
ExecutorKind, InternedScheduleLabel, IntoSystemSetConfigs, Schedule, ScheduleLabel,
6+
ExecutorKind, InternedScheduleLabel, IntoScheduleConfigs, Schedule, ScheduleLabel,
77
SystemSet,
88
},
99
system::Local,
@@ -316,7 +316,7 @@ impl Plugin for MainSchedulePlugin {
316316

317317
#[cfg(feature = "bevy_debug_stepping")]
318318
{
319-
use bevy_ecs::schedule::{IntoSystemConfigs, Stepping};
319+
use bevy_ecs::schedule::{IntoScheduleConfigs, Stepping};
320320
app.add_systems(Main, Stepping::begin_frame.before(Main::run_main));
321321
}
322322
}

crates/bevy_app/src/sub_app.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ use bevy_ecs::{
44
error::{DefaultSystemErrorHandler, SystemErrorContext},
55
event::EventRegistry,
66
prelude::*,
7-
schedule::{InternedScheduleLabel, ScheduleBuildSettings, ScheduleLabel},
8-
system::{SystemId, SystemInput},
7+
schedule::{InternedScheduleLabel, InternedSystemSet, ScheduleBuildSettings, ScheduleLabel},
8+
system::{ScheduleSystem, SystemId, SystemInput},
99
};
1010
use bevy_platform_support::collections::{HashMap, HashSet};
1111
use core::fmt::Debug;
@@ -212,7 +212,7 @@ impl SubApp {
212212
pub fn add_systems<M>(
213213
&mut self,
214214
schedule: impl ScheduleLabel,
215-
systems: impl IntoSystemConfigs<M>,
215+
systems: impl IntoScheduleConfigs<ScheduleSystem, M>,
216216
) -> &mut Self {
217217
let mut schedules = self.world.resource_mut::<Schedules>();
218218
schedules.add_systems(schedule, systems);
@@ -234,10 +234,10 @@ impl SubApp {
234234

235235
/// See [`App::configure_sets`].
236236
#[track_caller]
237-
pub fn configure_sets(
237+
pub fn configure_sets<M>(
238238
&mut self,
239239
schedule: impl ScheduleLabel,
240-
sets: impl IntoSystemSetConfigs,
240+
sets: impl IntoScheduleConfigs<InternedSystemSet, M>,
241241
) -> &mut Self {
242242
let mut schedules = self.world.resource_mut::<Schedules>();
243243
schedules.configure_sets(schedule, sets);

crates/bevy_asset/src/asset_changed.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ mod tests {
290290

291291
use crate::{AssetApp, Assets};
292292
use bevy_app::{App, AppExit, PostUpdate, Startup, TaskPoolPlugin, Update};
293-
use bevy_ecs::schedule::IntoSystemConfigs;
293+
use bevy_ecs::schedule::IntoScheduleConfigs;
294294
use bevy_ecs::{
295295
component::Component,
296296
event::EventWriter,

crates/bevy_asset/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ use bevy_app::{App, Plugin, PostUpdate, PreUpdate};
220220
use bevy_ecs::prelude::Component;
221221
use bevy_ecs::{
222222
reflect::AppTypeRegistry,
223-
schedule::{IntoSystemConfigs, IntoSystemSetConfigs, SystemSet},
223+
schedule::{IntoScheduleConfigs, SystemSet},
224224
world::FromWorld,
225225
};
226226
use bevy_platform_support::collections::HashSet;

crates/bevy_core_pipeline/src/dof/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ use bevy_ecs::{
2323
query::{QueryItem, With},
2424
reflect::ReflectComponent,
2525
resource::Resource,
26-
schedule::IntoSystemConfigs as _,
26+
schedule::IntoScheduleConfigs as _,
2727
system::{lifetimeless::Read, Commands, Query, Res, ResMut},
2828
world::{FromWorld, World},
2929
};

crates/bevy_core_pipeline/src/experimental/mip_generation/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ use bevy_ecs::{
1616
prelude::{resource_exists, Without},
1717
query::{Or, QueryState, With},
1818
resource::Resource,
19-
schedule::IntoSystemConfigs as _,
19+
schedule::IntoScheduleConfigs as _,
2020
system::{lifetimeless::Read, Commands, Local, Query, Res, ResMut},
2121
world::{FromWorld, World},
2222
};

crates/bevy_core_pipeline/src/motion_blur/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use crate::{
99
use bevy_app::{App, Plugin};
1010
use bevy_asset::{load_internal_asset, weak_handle, Handle};
1111
use bevy_ecs::{
12-
component::Component, query::With, reflect::ReflectComponent, schedule::IntoSystemConfigs,
12+
component::Component, query::With, reflect::ReflectComponent, schedule::IntoScheduleConfigs,
1313
};
1414
use bevy_reflect::{std_traits::ReflectDefault, Reflect};
1515
use bevy_render::{

crates/bevy_core_pipeline/src/post_process/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use bevy_ecs::{
1111
query::{QueryItem, With},
1212
reflect::ReflectComponent,
1313
resource::Resource,
14-
schedule::IntoSystemConfigs as _,
14+
schedule::IntoScheduleConfigs as _,
1515
system::{lifetimeless::Read, Commands, Query, Res, ResMut},
1616
world::{FromWorld, World},
1717
};

crates/bevy_core_pipeline/src/skybox/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use bevy_ecs::{
55
query::{QueryItem, With},
66
reflect::ReflectComponent,
77
resource::Resource,
8-
schedule::IntoSystemConfigs,
8+
schedule::IntoScheduleConfigs,
99
system::{Commands, Query, Res, ResMut},
1010
};
1111
use bevy_image::{BevyDefault, Image};

crates/bevy_core_pipeline/src/smaa/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ use bevy_ecs::{
4646
query::{QueryItem, With},
4747
reflect::ReflectComponent,
4848
resource::Resource,
49-
schedule::IntoSystemConfigs as _,
49+
schedule::IntoScheduleConfigs as _,
5050
system::{lifetimeless::Read, Commands, Query, Res, ResMut},
5151
world::{FromWorld, World},
5252
};

crates/bevy_core_pipeline/src/taa/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use bevy_ecs::{
1111
prelude::{Component, Entity, ReflectComponent},
1212
query::{QueryItem, With},
1313
resource::Resource,
14-
schedule::IntoSystemConfigs,
14+
schedule::IntoScheduleConfigs,
1515
system::{Commands, Query, Res, ResMut},
1616
world::{FromWorld, World},
1717
};

crates/bevy_dev_tools/src/fps_overlay.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use bevy_ecs::{
1111
prelude::Local,
1212
query::With,
1313
resource::Resource,
14-
schedule::{common_conditions::resource_changed, IntoSystemConfigs},
14+
schedule::{common_conditions::resource_changed, IntoScheduleConfigs},
1515
system::{Commands, Query, Res},
1616
};
1717
use bevy_render::view::Visibility;

crates/bevy_ecs/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,8 @@ pub mod prelude {
8585
removal_detection::RemovedComponents,
8686
resource::Resource,
8787
schedule::{
88-
apply_deferred, common_conditions::*, ApplyDeferred, Condition, IntoSystemConfigs,
89-
IntoSystemSet, IntoSystemSetConfigs, Schedule, Schedules, SystemSet,
88+
apply_deferred, common_conditions::*, ApplyDeferred, Condition, IntoScheduleConfigs,
89+
IntoSystemSet, Schedule, Schedules, SystemSet,
9090
},
9191
spawn::{Spawn, SpawnRelated},
9292
system::{

crates/bevy_ecs/src/query/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ mod tests {
112112
ArchetypeFilter, FilteredAccess, Has, QueryCombinationIter, QueryData,
113113
ReadOnlyQueryData, WorldQuery,
114114
},
115-
schedule::{IntoSystemConfigs, Schedule},
115+
schedule::{IntoScheduleConfigs, Schedule},
116116
storage::{Table, TableRow},
117117
system::{assert_is_system, IntoSystem, Query, System, SystemState},
118118
world::{unsafe_world_cell::UnsafeWorldCell, World},

crates/bevy_ecs/src/schedule/condition.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1267,7 +1267,7 @@ mod tests {
12671267
use crate::{
12681268
change_detection::ResMut,
12691269
component::Component,
1270-
schedule::{IntoSystemConfigs, Schedule},
1270+
schedule::{IntoScheduleConfigs, Schedule},
12711271
system::Local,
12721272
world::World,
12731273
};

0 commit comments

Comments
 (0)