#[non_exhaustive]
pub struct Session {
pub world: World,
pub stages: SystemStages,
pub active: bool,
pub visible: bool,
pub priority: i32,
pub runner: Box<dyn SessionRunner>,
}Expand description
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
The ECS world for the core.
The system stages.
Whether or not this session should have it’s systems run.
Whether or not this session should be rendered.
The priority of this session relative to other sessions in the Game.
The session runner to use for this session.
Source§
Source
Snapshot the world state.
This is the same as core.world.clone(), but it is more explicit.
Source
Restore the world state.
Re-sets the world state to that of the provided world, which may or may not have been
created with snapshot().
This is the same as doing an std::mem::swap on self.world, but it is more explicit.
Source
Set the session runner for this session.
Source
Execute the systems on the given world.
Source
If SessionStarted resource indicates have not yet started,
perform startup tasks (insert startup resources, run startup systems).
For advanced use cases in which want to only insert startup resources, or run startup systems and split this
behavior, see SystemStages::handle_startup_systems and [SystemStages::handle_startup_resources].
While this is used internally by SystemStages::run, this is also used
for resetting world. This allows world to immediately startup and re-initialize after reset.
§Panics
May panic if resources are borrowed, should not borrow resources when calling.
Source
If SessionStarted resource indicates startup resources have not yet been inserted, will do so and update SessionStarted.
This function contains only half of stage’s startup behavior, see SystemStages::handle_startup if not intending to split
resource insertion from startup systems (Splitting these is more for advanced special cases).
§Panics
May panic if resources are borrowed, should not borrow resources when calling.
Source
If SessionStarted resource indicates startup systems have not yet been executed, will do so and update SessionStarted.
This function contains only half of stage’s startup behavior, see SystemStages::handle_startup if not intending to split
startup system execution from startup resource insertion (Splitting these is more for advanced special cases).
§Panics
May panic if resources are borrowed, should not borrow resources when calling.