pub struct AtomicComponentStoreRefMut<'a, T>where
T: TypedEcsData,{ /* private fields */ }Expand description
A mutable borrow of AtomicComponentStore.
Implementations§
Source§impl<'a, T> AtomicComponentStoreRefMut<'a, T>where
T: TypedEcsData,
impl<'a, T> AtomicComponentStoreRefMut<'a, T>where
T: TypedEcsData,
Sourcepub fn insert(&mut self, entity: Entity, component: T) -> Option<T>
pub fn insert(&mut self, entity: Entity, component: T) -> Option<T>
Inserts a component for the given Entity index.
Returns the previous component, if any.
Sourcepub fn get(&self, entity: Entity) -> Option<&T>
pub fn get(&self, entity: Entity) -> Option<&T>
Gets an immutable reference to the component of Entity.
Sourcepub fn get_mut(&mut self, entity: Entity) -> Option<&mut T>
pub fn get_mut(&mut self, entity: Entity) -> Option<&mut T>
Gets a mutable reference to the component of Entity.
Sourcepub fn get_many_mut<const N: usize>(
&mut self,
entities: [Entity; N],
) -> [Option<&mut T>; N]
pub fn get_many_mut<const N: usize>( &mut self, entities: [Entity; N], ) -> [Option<&mut T>; N]
Get mutable pointers to the component data for multiple entities at the same time.
§Panics
This will panic if the same entity is specified multiple times. This is invalid because it would mean you would have two mutable references to the same component data at the same time.
Sourcepub fn remove(&mut self, entity: Entity) -> Option<T>
pub fn remove(&mut self, entity: Entity) -> Option<T>
Removes the component of Entity.
Returns the component that was on the entity, if any.
Sourcepub fn iter(&self) -> impl Iterator<Item = &T>
pub fn iter(&self) -> impl Iterator<Item = &T>
Iterates immutably over all components of this type.
Very fast but doesn’t allow joining with other component types.
Sourcepub fn iter_mut(&mut self) -> impl Iterator<Item = &mut T>
pub fn iter_mut(&mut self) -> impl Iterator<Item = &mut T>
Iterates mutably over all components of this type.
Very fast but doesn’t allow joining with other component types.
Sourcepub fn iter_with_bitset(
&self,
bitset: Rc<BitSetVec>,
) -> ComponentBitsetIterator<'_, T> ⓘ
pub fn iter_with_bitset( &self, bitset: Rc<BitSetVec>, ) -> ComponentBitsetIterator<'_, T> ⓘ
Iterates immutably over the components of this type where bitset indicates the indices of
entities.
Slower than iter() but allows joining between multiple component types.
Sourcepub fn iter_mut_with_bitset(
&mut self,
bitset: Rc<BitSetVec>,
) -> ComponentBitsetIteratorMut<'_, T> ⓘ
pub fn iter_mut_with_bitset( &mut self, bitset: Rc<BitSetVec>, ) -> ComponentBitsetIteratorMut<'_, T> ⓘ
Iterates mutable over the components of this type where bitset indicates the indices of
entities.
Slower than iter() but allows joining between multiple component types.
Trait Implementations§
Source§impl<'a, 'q, T> QueryItem for &'a AtomicComponentStoreRefMut<'q, T>where
T: TypedEcsData,
impl<'a, 'q, T> QueryItem for &'a AtomicComponentStoreRefMut<'q, T>where
T: TypedEcsData,
Source§type Iter = ComponentBitsetIterator<'a, T>
type Iter = ComponentBitsetIterator<'a, T>
Source§fn apply_bitset(&self, bitset: &mut BitSetVec)
fn apply_bitset(&self, bitset: &mut BitSetVec)
Source§fn iter_with_bitset(
self,
bitset: Rc<BitSetVec>,
) -> <&'a AtomicComponentStoreRefMut<'q, T> as QueryItem>::Iter
fn iter_with_bitset( self, bitset: Rc<BitSetVec>, ) -> <&'a AtomicComponentStoreRefMut<'q, T> as QueryItem>::Iter
Source§impl<'a, 'q, T> QueryItem for &'a mut AtomicComponentStoreRefMut<'q, T>where
T: TypedEcsData,
impl<'a, 'q, T> QueryItem for &'a mut AtomicComponentStoreRefMut<'q, T>where
T: TypedEcsData,
Source§type Iter = ComponentBitsetIteratorMut<'a, T>
type Iter = ComponentBitsetIteratorMut<'a, T>
Source§fn apply_bitset(&self, bitset: &mut BitSetVec)
fn apply_bitset(&self, bitset: &mut BitSetVec)
Source§fn iter_with_bitset(
self,
bitset: Rc<BitSetVec>,
) -> <&'a mut AtomicComponentStoreRefMut<'q, T> as QueryItem>::Iter
fn iter_with_bitset( self, bitset: Rc<BitSetVec>, ) -> <&'a mut AtomicComponentStoreRefMut<'q, T> as QueryItem>::Iter
Source§impl<'a, T> SystemParam for AtomicComponentStoreRefMut<'a, T>where
T: TypedEcsData,
impl<'a, T> SystemParam for AtomicComponentStoreRefMut<'a, T>where
T: TypedEcsData,
Source§type State = AtomicComponentStore<T>
type State = AtomicComponentStore<T>
Source§type Param<'p> = AtomicComponentStoreRefMut<'p, T>
type Param<'p> = AtomicComponentStoreRefMut<'p, T>
Source§fn initialize(world: &mut World)
fn initialize(world: &mut World)
Source§fn get_state(
world: &World,
) -> <AtomicComponentStoreRefMut<'a, T> as SystemParam>::State
fn get_state( world: &World, ) -> <AtomicComponentStoreRefMut<'a, T> as SystemParam>::State
Source§fn borrow(
state: &mut <AtomicComponentStoreRefMut<'a, T> as SystemParam>::State,
) -> <AtomicComponentStoreRefMut<'a, T> as SystemParam>::Param<'_>
fn borrow( state: &mut <AtomicComponentStoreRefMut<'a, T> as SystemParam>::State, ) -> <AtomicComponentStoreRefMut<'a, T> as SystemParam>::Param<'_>
Auto Trait Implementations§
impl<'a, T> Freeze for AtomicComponentStoreRefMut<'a, T>
impl<'a, T> RefUnwindSafe for AtomicComponentStoreRefMut<'a, T>where
T: RefUnwindSafe,
impl<'a, T> Send for AtomicComponentStoreRefMut<'a, T>
impl<'a, T> Sync for AtomicComponentStoreRefMut<'a, T>
impl<'a, T> Unpin for AtomicComponentStoreRefMut<'a, T>where
T: Unpin,
impl<'a, T> UnsafeUnpin for AtomicComponentStoreRefMut<'a, T>
impl<'a, T> !UnwindSafe for AtomicComponentStoreRefMut<'a, T>
Blanket Implementations§
Source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
Source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
T ShaderType for self. When used in AsBindGroup
derives, it is safe to assume that all images in self exist.Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more