Skip to content

Commit c99e540

Browse files
committed
Extract a small snippet in ScheduleRunnerPlugin into a new function
1 parent 683f5fa commit c99e540

File tree

1 file changed

+20
-12
lines changed
  • crates/bevy_schedule_runner/src

1 file changed

+20
-12
lines changed

crates/bevy_schedule_runner/src/lib.rs

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -91,24 +91,18 @@ impl Plugin for ScheduleRunnerPlugin {
9191
-> Result<Option<Duration>, AppExit> {
9292
let start_time = Instant::now();
9393

94-
if let Some(app_exit_events) =
95-
app.world.get_resource_mut::<Events<AppExit>>()
94+
if let Some(result) =
95+
check_for_app_exit_events(app, &mut app_exit_event_reader)
9696
{
97-
if let Some(exit) = app_exit_event_reader.iter(&app_exit_events).last()
98-
{
99-
return Err(exit.clone());
100-
}
97+
return result;
10198
}
10299

103100
app.update();
104101

105-
if let Some(app_exit_events) =
106-
app.world.get_resource_mut::<Events<AppExit>>()
102+
if let Some(value) =
103+
check_for_app_exit_events(app, &mut app_exit_event_reader)
107104
{
108-
if let Some(exit) = app_exit_event_reader.iter(&app_exit_events).last()
109-
{
110-
return Err(exit.clone());
111-
}
105+
return value;
112106
}
113107

114108
let end_time = Instant::now();
@@ -167,3 +161,17 @@ impl Plugin for ScheduleRunnerPlugin {
167161
});
168162
}
169163
}
164+
165+
fn check_for_app_exit_events(
166+
app: &mut App,
167+
app_exit_event_reader: &mut ManualEventReader<AppExit>,
168+
) -> Option<Result<Option<Duration>, AppExit>> {
169+
if let Some(app_exit_events) = app.world.get_resource_mut::<Events<AppExit>>() {
170+
return app_exit_event_reader
171+
.iter(&app_exit_events)
172+
.last()
173+
.cloned()
174+
.map(Err);
175+
}
176+
None
177+
}

0 commit comments

Comments
 (0)