Skip to main content

AtomicComponentStoreRefMut

Struct AtomicComponentStoreRefMut 

Source
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,

Source

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.

Source

pub fn get(&self, entity: Entity) -> Option<&T>

Gets an immutable reference to the component of Entity.

Source

pub fn get_mut(&mut self, entity: Entity) -> Option<&mut T>

Gets a mutable reference to the component of Entity.

Source

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.

Source

pub fn remove(&mut self, entity: Entity) -> Option<T>

Removes the component of Entity.

Returns the component that was on the entity, if any.

Source

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.

Source

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.

Source

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.

Source

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.

Source

pub fn bitset(&self) -> &BitSetVec

Get the bitset representing which entities have this component on it.

Source

pub fn contains(&self, entity: Entity) -> bool

Check whether or not this component store has data for the given entity.

Trait Implementations§

Source§

impl<'a, 'q, T> QueryItem for &'a AtomicComponentStoreRefMut<'q, T>
where T: TypedEcsData,

Source§

type Iter = ComponentBitsetIterator<'a, T>

The type of iterator this query item creates
Source§

fn apply_bitset(&self, bitset: &mut BitSetVec)

Modify the iteration bitset
Source§

fn iter_with_bitset( self, bitset: Rc<BitSetVec>, ) -> <&'a AtomicComponentStoreRefMut<'q, T> as QueryItem>::Iter

Return an iterator over the provided bitset.
Source§

impl<'a, 'q, T> QueryItem for &'a mut AtomicComponentStoreRefMut<'q, T>
where T: TypedEcsData,

Source§

type Iter = ComponentBitsetIteratorMut<'a, T>

The type of iterator this query item creates
Source§

fn apply_bitset(&self, bitset: &mut BitSetVec)

Modify the iteration bitset
Source§

fn iter_with_bitset( self, bitset: Rc<BitSetVec>, ) -> <&'a mut AtomicComponentStoreRefMut<'q, T> as QueryItem>::Iter

Return an iterator over the provided bitset.
Source§

impl<'a, T> SystemParam for AtomicComponentStoreRefMut<'a, T>
where T: TypedEcsData,

Source§

type State = AtomicComponentStore<T>

The intermediate state for the parameter, that may be extracted from the world.
Source§

type Param<'p> = AtomicComponentStoreRefMut<'p, T>

The type of the parameter, ranging over the lifetime of the intermediate state. Read more
Source§

fn initialize(world: &mut World)

This will be called to give the parameter a chance to initialize it’s world storage. Read more
Source§

fn get_state( world: &World, ) -> <AtomicComponentStoreRefMut<'a, T> as SystemParam>::State

This is called to produce the intermediate state of the system parameter. Read more
Source§

fn borrow( state: &mut <AtomicComponentStoreRefMut<'a, T> as SystemParam>::State, ) -> <AtomicComponentStoreRefMut<'a, T> as SystemParam>::Param<'_>

This is used create an instance of the system parame, possibly borrowed from the intermediate parameter state.

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T, U> AsBindGroupShaderType<U> for T
where U: ShaderType, &'a T: for<'a> Into<U>,

Source§

fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U

Return the T ShaderType for self. When used in AsBindGroup derives, it is safe to assume that all images in self exist.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert 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>

Convert 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)

Convert &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)

Convert &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
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

Source§

const WITNESS: W = W::MAKE

A constant of the type witness
Source§

impl<T> Identity for T
where T: ?Sized,

Source§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
Source§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> Upcast<T> for T

Source§

fn upcast(&self) -> Option<&T>

Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> Event for T
where T: Send + Sync + 'static,

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,