Struct bones_lib::Sessions

source ·
pub struct Sessions { /* private fields */ }
Expand description

Container for multiple game sessions.

Each session shares the same Entities.

Implementations§

source§

impl Sessions

source

pub fn create(&mut self, builder: SessionBuilder) -> &mut Session

Create a new session from SessionBuilder, insert into Sessions, and borrow it mutably so it can be modified. If session with same name already exists, it will be replaced.

source

pub fn create_with<N: TryInto<Ustr>>( &mut self, name: N, build_function: impl FnOnce(&mut SessionBuilder), ) -> &mut Session
where <N as TryInto<Ustr>>::Error: Debug,

Create a new session from default SessionBuilder, and modify in closure before it is added to Sessions. Then borrow it mutably so it can be modified.

If session with same name already exists, it will be replaced.

source

pub fn modify_and_replace_existing_session<N: TryInto<Ustr>>( &mut self, name: N, build_function: impl FnOnce(&mut SessionBuilder), ) -> Option<&mut Session>
where <N as TryInto<Ustr>>::Error: Debug,

Replaces an existing session after converting it into a SessionBuilder with same systems, stages, etc. It then is given to build_function to extend or modify it.

WARNING - this is intended to allow a GamePlugin to extend a session created by another plugin during setup. It destroys and re-creates session, and if used during gameplay, could break assumptions around determinism and cause desyncs in network play. The sessions World is not preserved. This is a utility for constructing session, not for runtime mutation.

None is returned if the session with name was not found.

source

pub fn delete<K: TryInto<Ustr>>(&mut self, name: K)
where <K as TryInto<Ustr>>::Error: Debug,

Delete a session.

source

pub fn get<K: TryInto<Ustr>>(&self, name: K) -> Option<&Session>
where <K as TryInto<Ustr>>::Error: Debug,

Borrow a session from the sessions list.

source

pub fn get_mut<K: TryInto<Ustr>>(&mut self, name: K) -> Option<&mut Session>
where <K as TryInto<Ustr>>::Error: Debug,

Borrow a session from the sessions list.

source

pub fn iter_mut(&mut self) -> IterMut<'_, Ustr, Session>

Mutably iterate over sessions.

source

pub fn iter(&self) -> Iter<'_, Ustr, Session>

Iterate over sessions.

source

pub fn add_command(&mut self, command: Box<SessionCommand>)

Add a SessionCommand to queue.

Trait Implementations§

source§

impl Default for Sessions

source§

fn default() -> Sessions

Returns the “default value” for a type. Read more
source§

impl HasSchema for Sessions

source§

fn schema() -> &'static Schema

Get this type’s [Schema].
§

fn register_schema()

Register this schema with the global schema registry. Read more
§

fn cast<T>(this: &Self) -> &T
where T: HasSchema,

Cast a reference of this type to a reference of another type with the same memory layout. Read more
§

fn try_cast<T>(this: &Self) -> Result<&T, SchemaMismatchError>
where T: HasSchema,

Cast a reference of this type to a reference of another type with the same memory layout. Read more
§

fn cast_mut<T>(this: &mut Self) -> &mut T
where T: HasSchema,

Cast a mutable reference of this type to a reference of another type with the same memory layout. Read more
§

fn try_cast_mut<T>(this: &mut Self) -> Result<&mut T, SchemaMismatchError>
where T: HasSchema,

Cast a mutable reference of this type to a reference of another type with the same memory layout. Read more
§

fn as_schema_ref(&self) -> SchemaRef<'_>
where Self: Sized,

Converts a reference of T to a SchemaRef
§

fn as_schema_mut(&mut self) -> SchemaRefMut<'_>
where Self: Sized,

Converts a reference of T to a SchemaRefMut

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> FromWorld for T
where T: Default,

§

fn from_world(_world: &World) -> T

Creates Self using data from the given World.
§

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> RawDefault for T
where T: Default,

§

unsafe fn raw_default(dst: *mut c_void)

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

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

Get a callback suitable for [SchemaData].
§

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