Struct planck_ecs::World[][src]

pub struct World { /* fields omitted */ }
Expand description

Contains data indexed by type. World allows to dynamically enforce the rust rules of borrowing and ownership at runtime:

  • The same type cannot be borrowed immutably and mutably at the same time.
  • The same type cannot be borrowed mutably more than once at the same time.

Implementations

impl World[src]

pub fn initialize<T>(&mut self) where
    T: 'static + Default + Send + Sync
[src]

Initializes a resource to its default value. This is the only way to “insert” a resource.

It is suggested to use a macro to collect all the resources and initialize all of them.

pub fn get<T>(&self) -> Result<AtomicRef<'_, T>, EcsError> where
    T: 'static + Send + Sync
[src]

Get an immutable reference to a resource by type. Will return an error if the type is:

  • Non initialized
  • Already borrowed mutably

pub fn get_mut<T>(&self) -> Result<AtomicRefMut<'_, T>, EcsError> where
    T: 'static + Send + Sync
[src]

Get a mutable reference to a resource by type. Will return an error if the type is:

  • Non initialized
  • Already borrowed immutably
  • Already borrowed mutably

pub fn get_mut_or_default<T>(&mut self) -> AtomicRefMut<'_, T> where
    T: 'static + Default + Send + Sync
[src]

Get a mutable reference to a resource by type, default-initializing it if not already initialized.

Trait Implementations

impl Default for World[src]

pub fn default() -> World[src]

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

impl WorldExt for World[src]

fn maintain(&mut self)[src]

Removes dead entities from all the registered storages.

Auto Trait Implementations

impl !RefUnwindSafe for World

impl Send for World

impl Sync for World

impl Unpin for World

impl !UnwindSafe for World

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> Downcast for T where
    T: Any

pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more

pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more

pub fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s. Read more

pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s. Read more

impl<T> DowncastSync for T where
    T: Any + Send + Sync

pub fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + 'static + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.