Trait shipyard::AddComponent

source ·
pub trait AddComponent<T> {
    // Required method
    fn add_component_unchecked(&mut self, entity: EntityId, component: T)
       where Self: Sized;
}
Expand description

Defines how components are added to an existing entity.

Required Methods§

source

fn add_component_unchecked(&mut self, entity: EntityId, component: T)
where Self: Sized,

Adds component to entity, multiple components can be added at the same time using a tuple.
This function does not check entity is alive. It’s possible to add components to removed entities.
Use Entities::add_component if you’re unsure.

§Example
use shipyard::{AddComponent, Component, EntitiesViewMut, ViewMut, World};

#[derive(Component)]
struct U32(u32);

let world = World::new();

let (mut entities, mut u32s) = world.borrow::<(EntitiesViewMut, ViewMut<U32>)>().unwrap();
let entity = entities.add_entity((), ());

u32s.add_component_unchecked(entity, U32(0));

Implementations on Foreign Types§

source§

impl AddComponent<()> for ()

source§

impl<A: Component, B: Component, C: Component, D: Component, E: Component, F: Component, G: Component, H: Component, I: Component, J: Component, ViewA: AddComponent<A>, ViewB: AddComponent<B>, ViewC: AddComponent<C>, ViewD: AddComponent<D>, ViewE: AddComponent<E>, ViewF: AddComponent<F>, ViewG: AddComponent<G>, ViewH: AddComponent<H>, ViewI: AddComponent<I>, ViewJ: AddComponent<J>> AddComponent<(A, B, C, D, E, F, G, H, I, J)> for (ViewA, ViewB, ViewC, ViewD, ViewE, ViewF, ViewG, ViewH, ViewI, ViewJ)

source§

impl<A: Component, B: Component, C: Component, D: Component, E: Component, F: Component, G: Component, H: Component, I: Component, ViewA: AddComponent<A>, ViewB: AddComponent<B>, ViewC: AddComponent<C>, ViewD: AddComponent<D>, ViewE: AddComponent<E>, ViewF: AddComponent<F>, ViewG: AddComponent<G>, ViewH: AddComponent<H>, ViewI: AddComponent<I>> AddComponent<(A, B, C, D, E, F, G, H, I)> for (ViewA, ViewB, ViewC, ViewD, ViewE, ViewF, ViewG, ViewH, ViewI)

source§

impl<A: Component, B: Component, C: Component, D: Component, E: Component, F: Component, G: Component, H: Component, ViewA: AddComponent<A>, ViewB: AddComponent<B>, ViewC: AddComponent<C>, ViewD: AddComponent<D>, ViewE: AddComponent<E>, ViewF: AddComponent<F>, ViewG: AddComponent<G>, ViewH: AddComponent<H>> AddComponent<(A, B, C, D, E, F, G, H)> for (ViewA, ViewB, ViewC, ViewD, ViewE, ViewF, ViewG, ViewH)

source§

impl<A: Component, B: Component, C: Component, D: Component, E: Component, F: Component, G: Component, ViewA: AddComponent<A>, ViewB: AddComponent<B>, ViewC: AddComponent<C>, ViewD: AddComponent<D>, ViewE: AddComponent<E>, ViewF: AddComponent<F>, ViewG: AddComponent<G>> AddComponent<(A, B, C, D, E, F, G)> for (ViewA, ViewB, ViewC, ViewD, ViewE, ViewF, ViewG)

source§

fn add_component_unchecked( &mut self, entity: EntityId, component: (A, B, C, D, E, F, G), )

source§

impl<A: Component, B: Component, C: Component, D: Component, E: Component, F: Component, ViewA: AddComponent<A>, ViewB: AddComponent<B>, ViewC: AddComponent<C>, ViewD: AddComponent<D>, ViewE: AddComponent<E>, ViewF: AddComponent<F>> AddComponent<(A, B, C, D, E, F)> for (ViewA, ViewB, ViewC, ViewD, ViewE, ViewF)

source§

fn add_component_unchecked( &mut self, entity: EntityId, component: (A, B, C, D, E, F), )

source§

impl<A: Component, B: Component, C: Component, D: Component, E: Component, ViewA: AddComponent<A>, ViewB: AddComponent<B>, ViewC: AddComponent<C>, ViewD: AddComponent<D>, ViewE: AddComponent<E>> AddComponent<(A, B, C, D, E)> for (ViewA, ViewB, ViewC, ViewD, ViewE)

source§

fn add_component_unchecked( &mut self, entity: EntityId, component: (A, B, C, D, E), )

source§

impl<A: Component, B: Component, C: Component, D: Component, ViewA: AddComponent<A>, ViewB: AddComponent<B>, ViewC: AddComponent<C>, ViewD: AddComponent<D>> AddComponent<(A, B, C, D)> for (ViewA, ViewB, ViewC, ViewD)

source§

fn add_component_unchecked(&mut self, entity: EntityId, component: (A, B, C, D))

source§

impl<A: Component, B: Component, C: Component, ViewA: AddComponent<A>, ViewB: AddComponent<B>, ViewC: AddComponent<C>> AddComponent<(A, B, C)> for (ViewA, ViewB, ViewC)

source§

fn add_component_unchecked(&mut self, entity: EntityId, component: (A, B, C))

source§

impl<A: Component, B: Component, ViewA: AddComponent<A>, ViewB: AddComponent<B>> AddComponent<(A, B)> for (ViewA, ViewB)

source§

fn add_component_unchecked(&mut self, entity: EntityId, component: (A, B))

source§

impl<A: Component, ViewA: AddComponent<A>> AddComponent<(A,)> for (ViewA,)

source§

fn add_component_unchecked(&mut self, entity: EntityId, component: (A,))

Implementors§

source§

impl<T: Component, TRACK> AddComponent<Option<T>> for &mut ViewMut<'_, T, TRACK>

source§

impl<T: Component, TRACK> AddComponent<Option<T>> for ViewMut<'_, T, TRACK>

source§

impl<T: Component, TRACK> AddComponent<T> for &mut ViewMut<'_, T, TRACK>

source§

impl<T: Component, TRACK> AddComponent<T> for ViewMut<'_, T, TRACK>