Skip to content

Commit 747511a

Browse files
Fix doc examples
1 parent 3aa0a79 commit 747511a

File tree

1 file changed

+17
-8
lines changed

1 file changed

+17
-8
lines changed

crates/bevy_ecs/src/system/function_system.rs

+17-8
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ impl SystemMeta {
8181
/// ```rust
8282
/// use bevy_ecs::prelude::*;
8383
/// use bevy_ecs::{system::SystemState};
84+
/// use bevy_ecs::event::Events;
8485
///
8586
/// struct MyEvent;
8687
/// struct MyResource(u32);
@@ -90,6 +91,7 @@ impl SystemMeta {
9091
///
9192
/// // Work directly on the `World`
9293
/// let mut world = World::new();
94+
/// world.init_resource::<Events<MyEvent>>();
9395
///
9496
/// // Construct a `SystemState` struct, passing in a tuple of `SystemParam`
9597
/// // as if you were writing an ordinary system.
@@ -107,22 +109,29 @@ impl SystemMeta {
107109
/// ```rust
108110
/// use bevy_ecs::prelude::*;
109111
/// use bevy_ecs::{system::SystemState};
112+
/// use bevy_ecs::event::Events;
110113
///
111114
/// struct MyEvent;
115+
/// struct CachedSystemState<'w, 's>{
116+
/// event_state: SystemState<EventReader<'w, 's, MyEvent>>
117+
/// }
112118
///
113119
/// // Create and store a system state once
114120
/// let mut world = World::new();
115-
/// let initial_state: SystemState<EventReader<MyEvent>> = SystemState::new(&mut world);
116-
/// // The system state is cached directly as a resource
117-
/// world.insert_resource(initial_state);
121+
/// world.init_resource::<Events<MyEvent>>();
122+
/// let initial_state: SystemState<EventReader<MyEvent>> = SystemState::new(&mut world);
123+
///
124+
/// // The system state is cached in a resource
125+
/// world.insert_resource(CachedSystemState{event_state: initial_state});
118126
///
119127
/// // Later, fetch the cached system state, saving on overhead
120-
/// let cached_state = world.get_resource_mut::<SystemState<EventReader<MyEvent>>>().unwrap();
121-
/// let mut event_reader = cached_state.get_mut(&mut world);
128+
/// world.resource_scope(|world, mut cached_state: Mut<CachedSystemState>| {
129+
/// let mut event_reader = cached_state.event_state.get_mut(world);
122130
///
123-
/// for events in event_reader.iter(){
124-
/// // Handle events!
125-
/// };
131+
/// for events in event_reader.iter(){
132+
/// println!("Hello World!");
133+
/// };
134+
/// });
126135
/// ```
127136
pub struct SystemState<Param: SystemParam> {
128137
meta: SystemMeta,

0 commit comments

Comments
 (0)