Struct legion::systems::Resources[][src]

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

Resources container. Shared resources stored here can be retrieved in systems.

Implementations

Creates an accessor to resources which are Send and Sync, which itself can be sent between threads.

Returns true if type T exists in the store. Otherwise, returns false.

Inserts the instance of T into the store. If the type already exists, it will be silently overwritten. If you would like to retain the instance of the resource that already exists, call remove first to retrieve it.

Removes the type T from this store if it exists.

Returns

If the type T was stored, the inner instance of T is returned. Otherwise, None`.

Retrieve an immutable reference to T from the store if it exists. Otherwise, return None.

Panics

Panics if the resource is already borrowed mutably.

Retrieve a mutable reference to T from the store if it exists. Otherwise, return None.

Attempts to retrieve an immutable reference to T from the store. If it does not exist, the closure f is called to construct the object and it is then inserted into the store.

Attempts to retrieve a mutable reference to T from the store. If it does not exist, the closure f is called to construct the object and it is then inserted into the store.

Attempts to retrieve an immutable reference to T from the store. If it does not exist, the provided value is inserted and then a reference to it is returned.

Attempts to retrieve a mutable reference to T from the store. If it does not exist, the provided value is inserted and then a reference to it is returned.

Attempts to retrieve an immutable reference to T from the store. If it does not exist, the default constructor for T is called.

T must implement Default for this method.

Attempts to retrieve a mutable reference to T from the store. If it does not exist, the default constructor for T is called.

T must implement Default for this method.

Performs merging of two resource storages, which occurs during a world merge. This merge will retain any already-existant resources in the local world, while moving any new resources from the source world into this one, consuming the resources.

Trait Implementations

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

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

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

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

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

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

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

Performs the conversion.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.