Trait shipyard::Remove

source ·
pub trait Remove {
    type Out;

    // Required method
    fn remove(&mut self, entity: EntityId) -> Self::Out;
}
Expand description

Removes component from entities.

Required Associated Types§

source

type Out

Type of the removed component.

Required Methods§

source

fn remove(&mut self, entity: EntityId) -> Self::Out

Removes component in entity, if the entity had a component, they will be returned.
Multiple components can be removed at the same time using a tuple.

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

#[derive(Component, Debug, PartialEq, Eq)]
struct U32(u32);

#[derive(Component, Debug, PartialEq, Eq)]
struct USIZE(usize);

let mut world = World::new();

let entity = world.add_entity((USIZE(0), U32(1)));

let (mut usizes, mut u32s) = world.borrow::<(ViewMut<USIZE>, ViewMut<U32>)>().unwrap();

let old = (&mut usizes, &mut u32s).remove(entity);
assert_eq!(old, (Some(USIZE(0)), Some(U32(1))));

Implementations on Foreign Types§

source§

impl Remove for ()

source§

type Out = ()

source§

fn remove(&mut self, _: EntityId) -> Self::Out

source§

impl<ViewA: Remove> Remove for (ViewA,)

source§

type Out = (<ViewA as Remove>::Out,)

source§

fn remove(&mut self, entity: EntityId) -> Self::Out

source§

impl<ViewA: Remove, ViewB: Remove> Remove for (ViewA, ViewB)

source§

type Out = (<ViewA as Remove>::Out, <ViewB as Remove>::Out)

source§

fn remove(&mut self, entity: EntityId) -> Self::Out

source§

impl<ViewA: Remove, ViewB: Remove, ViewC: Remove> Remove for (ViewA, ViewB, ViewC)

source§

type Out = (<ViewA as Remove>::Out, <ViewB as Remove>::Out, <ViewC as Remove>::Out)

source§

fn remove(&mut self, entity: EntityId) -> Self::Out

source§

impl<ViewA: Remove, ViewB: Remove, ViewC: Remove, ViewD: Remove> Remove for (ViewA, ViewB, ViewC, ViewD)

source§

type Out = (<ViewA as Remove>::Out, <ViewB as Remove>::Out, <ViewC as Remove>::Out, <ViewD as Remove>::Out)

source§

fn remove(&mut self, entity: EntityId) -> Self::Out

source§

impl<ViewA: Remove, ViewB: Remove, ViewC: Remove, ViewD: Remove, ViewE: Remove> Remove for (ViewA, ViewB, ViewC, ViewD, ViewE)

source§

type Out = (<ViewA as Remove>::Out, <ViewB as Remove>::Out, <ViewC as Remove>::Out, <ViewD as Remove>::Out, <ViewE as Remove>::Out)

source§

fn remove(&mut self, entity: EntityId) -> Self::Out

source§

impl<ViewA: Remove, ViewB: Remove, ViewC: Remove, ViewD: Remove, ViewE: Remove, ViewF: Remove> Remove for (ViewA, ViewB, ViewC, ViewD, ViewE, ViewF)

source§

type Out = (<ViewA as Remove>::Out, <ViewB as Remove>::Out, <ViewC as Remove>::Out, <ViewD as Remove>::Out, <ViewE as Remove>::Out, <ViewF as Remove>::Out)

source§

fn remove(&mut self, entity: EntityId) -> Self::Out

source§

impl<ViewA: Remove, ViewB: Remove, ViewC: Remove, ViewD: Remove, ViewE: Remove, ViewF: Remove, ViewG: Remove> Remove for (ViewA, ViewB, ViewC, ViewD, ViewE, ViewF, ViewG)

source§

type Out = (<ViewA as Remove>::Out, <ViewB as Remove>::Out, <ViewC as Remove>::Out, <ViewD as Remove>::Out, <ViewE as Remove>::Out, <ViewF as Remove>::Out, <ViewG as Remove>::Out)

source§

fn remove(&mut self, entity: EntityId) -> Self::Out

source§

impl<ViewA: Remove, ViewB: Remove, ViewC: Remove, ViewD: Remove, ViewE: Remove, ViewF: Remove, ViewG: Remove, ViewH: Remove> Remove for (ViewA, ViewB, ViewC, ViewD, ViewE, ViewF, ViewG, ViewH)

source§

type Out = (<ViewA as Remove>::Out, <ViewB as Remove>::Out, <ViewC as Remove>::Out, <ViewD as Remove>::Out, <ViewE as Remove>::Out, <ViewF as Remove>::Out, <ViewG as Remove>::Out, <ViewH as Remove>::Out)

source§

fn remove(&mut self, entity: EntityId) -> Self::Out

source§

impl<ViewA: Remove, ViewB: Remove, ViewC: Remove, ViewD: Remove, ViewE: Remove, ViewF: Remove, ViewG: Remove, ViewH: Remove, ViewI: Remove> Remove for (ViewA, ViewB, ViewC, ViewD, ViewE, ViewF, ViewG, ViewH, ViewI)

source§

type Out = (<ViewA as Remove>::Out, <ViewB as Remove>::Out, <ViewC as Remove>::Out, <ViewD as Remove>::Out, <ViewE as Remove>::Out, <ViewF as Remove>::Out, <ViewG as Remove>::Out, <ViewH as Remove>::Out, <ViewI as Remove>::Out)

source§

fn remove(&mut self, entity: EntityId) -> Self::Out

source§

impl<ViewA: Remove, ViewB: Remove, ViewC: Remove, ViewD: Remove, ViewE: Remove, ViewF: Remove, ViewG: Remove, ViewH: Remove, ViewI: Remove, ViewJ: Remove> Remove for (ViewA, ViewB, ViewC, ViewD, ViewE, ViewF, ViewG, ViewH, ViewI, ViewJ)

source§

type Out = (<ViewA as Remove>::Out, <ViewB as Remove>::Out, <ViewC as Remove>::Out, <ViewD as Remove>::Out, <ViewE as Remove>::Out, <ViewF as Remove>::Out, <ViewG as Remove>::Out, <ViewH as Remove>::Out, <ViewI as Remove>::Out, <ViewJ as Remove>::Out)

source§

fn remove(&mut self, entity: EntityId) -> Self::Out

Implementors§

source§

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

source§

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