pub struct SubWorld<'a> { /* private fields */ }
Expand description

Provides access to a subset of the entities of a World.

To access a component mutably in a world, such as inside a query or via an EntryMut, you need to borrow the entire world mutably. This prevents you from accessing any other data in the world at the same time.

In some cases, we can work around this by splitting the world. We can split a world around the component types requested by a View. This will create two subworlds, the left one allowing access only to the components (and mutability) declared by the view, while the right subworld will allow access to everything but those components.

Subworlds can be recustively further split.

Implementations

Constructs a new SubWorld.

Safety

Queries assume that this type has been constructed correctly. Ensure that sub-worlds represent disjoint portions of a world and that the world is not used while any of its sub-worlds are alive.

Splits the world into two. The left world allows access only to the data declared by the view; the right world allows access to all else.

Examples
let (left, right) = world.split::<&mut Position>();

With the above, ‘left’ contains a sub-world with access only to &Position and &mut Position, and right contains a sub-world with access to everything but &Position and &mut Position.

let (left, right) = world.split::<&Position>();

In this second example, left is provided access only to &Position. right is granted permission to everything but &mut Position.

Splits the world into two. The left world allows access only to the data declared by the query’s view; the right world allows access to all else.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Returns a component storage accessor for component types declared in the specified View.

Returns an entity entry which can be used to access entity metadata and components.

Returns a mutable entity entry which can be used to access entity metadata and components.

Returns the world’s unique ID.

Performs the conversion.

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

Returns the argument unchanged.

Calls U::from(self).

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

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

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.