Struct bones_lib::Session

source ·
#[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

A bones game. This includes all of the game worlds, and systems.

Session is not allowed to be constructed directly. See Sessions::create or SessionBuilder for creating a new Session.

Fields (Non-exhaustive)§

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.
§world: World

The ECS world for the core.

§stages: SystemStages

The system stages.

§active: bool

Whether or not this session should have it’s systems run.

§visible: bool

Whether or not this session should be rendered.

§priority: i32

The priority of this session relative to other sessions in the Game.

§runner: Box<dyn SessionRunner>

The session runner to use for this session.

Implementations§

source§

impl Session

source

pub fn snapshot(&self) -> World

Snapshot the world state.

This is the same as core.world.clone(), but it is more explicit.

source

pub fn restore(&mut self, world: &mut World)

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

pub fn set_session_runner(&mut self, runner: Box<dyn SessionRunner>)

Set the session runner for this session.

Methods from Deref<Target = SystemStages>§

pub fn run(&mut self, world: &mut World)

Execute the systems on the given world.

pub fn handle_startup(&mut self, world: &mut World)

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.

pub fn handle_startup_resources(&mut self, world: &mut World)

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.

pub fn handle_startup_systems(&mut self, world: &mut World)

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.

Trait Implementations§

source§

impl Debug for Session

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Deref for Session

§

type Target = SystemStages

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl DerefMut for Session

source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> RawDrop for T

§

unsafe fn raw_drop(ptr: *mut c_void)

Write the default value of the type to the pointer. Read more
§

fn raw_drop_cb() -> Unsafe<&'static (dyn Fn(*mut c_void) + Send + Sync)>

Get a callback suitable for [SchemaData].
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more