Struct specs::changeset::ChangeSet[][src]

pub struct ChangeSet<T> { /* fields omitted */ }

Change set that can be collected from an iterator, and joined on for easy application to components.

Example


pub struct Health(i32);

impl Component for Health {
    type Storage = DenseVecStorage<Self>;
}


let a = world.create_entity().with(Health(100)).build();
let b = world.create_entity().with(Health(200)).build();

let changeset = [(a, 32), (b, 12), (b, 13)]
    .iter()
    .cloned()
    .collect::<ChangeSet<i32>>();
for (health, modifier) in (&mut world.write_storage::<Health>(), &changeset).join() {
    health.0 -= modifier;
}

Methods

impl<T> ChangeSet<T>
[src]

Create a new change set

Add a value to the change set. If the entity already have a value in the change set, the incoming value will be added to that.

Clear the changeset

Trait Implementations

impl<T> Default for ChangeSet<T>
[src]

Returns the "default value" for a type. Read more

impl<T> FromIterator<(Entity, T)> for ChangeSet<T> where
    T: AddAssign
[src]

Creates a value from an iterator. Read more

impl<T> Extend<(Entity, T)> for ChangeSet<T> where
    T: AddAssign
[src]

Extends a collection with the contents of an iterator. Read more

impl<'a, T> Join for &'a mut ChangeSet<T>
[src]

Type of joined components.

Type of joined storages.

Type of joined bit mask.

Open this join by returning the mask and the storages. Read more

Get a joined component value by a given index.

Important traits for JoinIter<J>

Create a joined iterator over the contents.

Returns a Join-able structure that yields all indices, returning None for all missing elements and Some(T) for found elements. Read more

If this Join typically returns all indices in the mask, then iterating over only it or combined with other joins that are also dangerous will cause the JoinIter/ParJoin to go through all indices which is usually not what is wanted and will kill performance. Read more

impl<'a, T> Join for &'a ChangeSet<T>
[src]

Type of joined components.

Type of joined storages.

Type of joined bit mask.

Open this join by returning the mask and the storages. Read more

Get a joined component value by a given index.

Important traits for JoinIter<J>

Create a joined iterator over the contents.

Returns a Join-able structure that yields all indices, returning None for all missing elements and Some(T) for found elements. Read more

If this Join typically returns all indices in the mask, then iterating over only it or combined with other joins that are also dangerous will cause the JoinIter/ParJoin to go through all indices which is usually not what is wanted and will kill performance. Read more

impl<T> Join for ChangeSet<T>
[src]

Type of joined components.

Type of joined storages.

Type of joined bit mask.

Open this join by returning the mask and the storages. Read more

Get a joined component value by a given index.

Important traits for JoinIter<J>

Create a joined iterator over the contents.

Returns a Join-able structure that yields all indices, returning None for all missing elements and Some(T) for found elements. Read more

If this Join typically returns all indices in the mask, then iterating over only it or combined with other joins that are also dangerous will cause the JoinIter/ParJoin to go through all indices which is usually not what is wanted and will kill performance. Read more

Auto Trait Implementations

impl<T> Send for ChangeSet<T> where
    T: Send

impl<T> Sync for ChangeSet<T> where
    T: Sync