Struct shipyard::EntitiesViewMut[][src]

pub struct EntitiesViewMut<'a> { /* fields omitted */ }

Exclusive view over Entities storage.

Methods from Deref<Target = Entities>

pub fn is_alive(&self, entity: EntityId) -> bool[src]

Returns true if entity matches a living entity.

pub fn add_component<S: AddComponent>(
    &self,
    entity: EntityId,
    storages: S,
    component: S::Component
)
[src]

Adds component to entity, multiple components can be added at the same time using a tuple.
Entities is only borrowed immutably.

Panics

  • entity is not alive.

Example

use shipyard::{EntitiesView, ViewMut, World};

let mut world = World::new();

let entity = world.add_entity(());

let (entities, mut u32s) = world.borrow::<(EntitiesView, ViewMut<u32>)>().unwrap();

entities.add_component(entity, &mut u32s, 0);

pub fn delete_unchecked(&mut self, entity_id: EntityId) -> bool[src]

Deletes an entity, returns true if the entity was alive.
If the entity has components, they will not be deleted and still be accessible using this id.

pub fn add_entity<T: AddEntity>(
    &mut self,
    storages: T,
    component: T::Component
) -> EntityId
[src]

Stores component in a new entity and returns its EntityId.
Multiple components can be added at the same time using a tuple.

Example:

use shipyard::{EntitiesViewMut, ViewMut, World};

let world = World::new();

let (mut entities, mut usizes, mut u32s) = world
    .borrow::<(EntitiesViewMut, ViewMut<usize>, ViewMut<u32>)>()
    .unwrap();

let entity = entities.add_entity((&mut usizes, &mut u32s), (0, 1));
assert_eq!(usizes[entity], 0);
assert_eq!(u32s[entity], 1);

pub fn bulk_add_entity<T: AddEntity + BulkReserve, I: IntoIterator<Item = T::Component>>(
    &mut self,
    storages: T,
    component: I
) -> BulkEntityIter<'_>

Notable traits for BulkEntityIter<'a>

impl<'a> Iterator for BulkEntityIter<'a> type Item = EntityId;
[src]

Creates multiple new entities and returns an iterator yielding the new EntityIds.
Multiple components can be added at the same time using a tuple.

Example

use shipyard::{EntitiesViewMut, ViewMut, World};

let world = World::new();

let (mut entities, mut usizes, mut u32s) = world
    .borrow::<(EntitiesViewMut, ViewMut<usize>, ViewMut<u32>)>()
    .unwrap();

let entity0 = entities.bulk_add_entity((), (0..1).map(|_| {})).next();
let entity1 = entities.bulk_add_entity(&mut u32s, 1..2).next();
let new_entities =
    entities.bulk_add_entity((&mut u32s, &mut usizes), (10..20).map(|i| (i as u32, i)));

pub fn iter(&self) -> EntitiesIter<'_>[src]

Creates an iterator over all entities.

pub fn spawn(&mut self, entity: EntityId) -> bool[src]

Make the given entity alive.
Does nothing if an entity with a greater generation is already at this index.
Returns true if the entity is successfully spawned.

Trait Implementations

impl<'a> BorrowInfo for EntitiesViewMut<'a>[src]

impl Deref for EntitiesViewMut<'_>[src]

type Target = Entities

The resulting type after dereferencing.

impl DerefMut for EntitiesViewMut<'_>[src]

impl IntoBorrow for EntitiesViewMut<'_>[src]

type Borrow = EntitiesMutBorrower

Helper type almost allowing GAT on stable.

Auto Trait Implementations

impl<'a> RefUnwindSafe for EntitiesViewMut<'a>

impl<'a> Send for EntitiesViewMut<'a>

impl<'a> Sync for EntitiesViewMut<'a>

impl<'a> Unpin for EntitiesViewMut<'a>

impl<'a> !UnwindSafe for EntitiesViewMut<'a>

Blanket Implementations

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

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

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

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

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

impl<T> Pointable for T

type Init = T

The type for initializers.

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.

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.