Struct EntityMutExcept

Source
pub struct EntityMutExcept<'w, B>
where B: Bundle,
{ /* private fields */ }
Expand description

Provides mutable access to all components of an entity, with the exception of an explicit set.

This is a rather niche type that should only be used if you need access to all components of an entity, while still allowing you to consult other queries that might match entities that this query also matches. If you don’t need access to all components, prefer a standard query with a crate::query::Without filter.

Implementations§

Source§

impl<'w, B> EntityMutExcept<'w, B>
where B: Bundle,

Source

pub fn id(&self) -> Entity

Returns the ID of the current entity.

Source

pub fn reborrow(&mut self) -> EntityMutExcept<'_, B>

Returns a new instance with a shorter lifetime.

This is useful if you have &mut EntityMutExcept, but you need EntityMutExcept.

Source

pub fn as_readonly(&self) -> EntityRefExcept<'_, B>

Gets read-only access to all of the entity’s components, except for the ones in CL.

Source

pub fn get<C>(&self) -> Option<&C>
where C: Component,

Gets access to the component of type C for the current entity. Returns None if the component doesn’t have a component of that type or if the type is one of the excluded components.

Source

pub fn get_ref<C>(&self) -> Option<Ref<'_, C>>
where C: Component,

Gets access to the component of type C for the current entity, including change detection information. Returns None if the component doesn’t have a component of that type or if the type is one of the excluded components.

Source

pub fn get_mut<C>(&mut self) -> Option<Mut<'_, C>>
where C: Component<Mutability = Mutable>,

Gets mutable access to the component of type C for the current entity. Returns None if the component doesn’t have a component of that type or if the type is one of the excluded components.

Source

pub fn spawned_by(&self) -> MaybeLocation

Returns the source code location from which this entity has been spawned.

Source

pub fn contains<T: Component>(&self) -> bool

Returns true if the current entity has a component of type T. Otherwise, this returns false.

§Notes

If you do not know the concrete type of a component, consider using Self::contains_id or Self::contains_type_id.

Source

pub fn contains_id(&self, component_id: ComponentId) -> bool

Returns true if the current entity has a component identified by component_id. Otherwise, this returns false.

§Notes
Source

pub fn contains_type_id(&self, type_id: TypeId) -> bool

Returns true if the current entity has a component with the type identified by type_id. Otherwise, this returns false.

§Notes
Source

pub fn get_by_id(&'w self, component_id: ComponentId) -> Option<Ptr<'w>>

Gets the component of the given ComponentId from the entity.

You should prefer to use the typed API Self::get where possible and only use this in cases where the actual component types are not known at compile time.

Unlike EntityMutExcept::get, this returns a raw pointer to the component, which is only valid while the EntityMutExcept is alive.

Source

pub fn get_mut_by_id<F: DynamicComponentFetch>( &mut self, component_id: ComponentId, ) -> Option<MutUntyped<'_>>

Gets a MutUntyped of the component of the given ComponentId from the entity.

You should prefer to use the typed API Self::get_mut where possible and only use this in cases where the actual component types are not known at compile time.

Unlike EntityMutExcept::get_mut, this returns a raw pointer to the component, which is only valid while the EntityMutExcept is alive.

Trait Implementations§

Source§

impl<B: Bundle> ContainsEntity for EntityMutExcept<'_, B>

Source§

fn entity(&self) -> Entity

Returns the contained entity.
Source§

impl<'a, B> From<&'a EntityMutExcept<'_, B>> for EntityRefExcept<'a, B>
where B: Bundle,

Source§

fn from(entity: &'a EntityMutExcept<'_, B>) -> Self

Converts to this type from the input type.
Source§

impl<'a, B: Bundle> From<&'a EntityMutExcept<'_, B>> for FilteredEntityMut<'a>

Source§

fn from(value: &'a EntityMutExcept<'_, B>) -> Self

Converts to this type from the input type.
Source§

impl<B: Bundle> Hash for EntityMutExcept<'_, B>

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<B: Bundle> Ord for EntityMutExcept<'_, B>

Source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl<B: Bundle> PartialEq for EntityMutExcept<'_, B>

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<B: Bundle> PartialOrd for EntityMutExcept<'_, B>

Source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

EntityMutExcept’s comparison trait implementations match the underlying Entity, and cannot discern between different worlds.

1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl<'a, B> QueryData for EntityMutExcept<'a, B>
where B: Bundle,

SAFETY: All accesses that EntityRefExcept provides are also accesses that EntityMutExcept provides.

Source§

const IS_READ_ONLY: bool = false

True if this query is read-only and may not perform mutable access.
Source§

type ReadOnly = EntityRefExcept<'a, B>

The read-only variant of this QueryData, which satisfies the ReadOnlyQueryData trait.
Source§

type Item<'w> = EntityMutExcept<'w, B>

The item returned by this WorldQuery This will be the data retrieved by the query, and is visible to the end user when calling e.g. Query<Self>::get.
Source§

fn shrink<'wlong: 'wshort, 'wshort>( item: Self::Item<'wlong>, ) -> Self::Item<'wshort>

This function manually implements subtyping for the query items.
Source§

unsafe fn fetch<'w>( world: &mut Self::Fetch<'w>, entity: Entity, _: TableRow, ) -> Self::Item<'w>

Fetch Self::Item for either the given entity in the current Table, or for the given entity in the current Archetype. This must always be called after WorldQuery::set_table with a table_row in the range of the current Table or after WorldQuery::set_archetype with an entity in the current archetype. Accesses components registered in WorldQuery::update_component_access. Read more
Source§

impl<'a, B> WorldQuery for EntityMutExcept<'a, B>
where B: Bundle,

SAFETY: EntityMutExcept guards access to all components in the bundle B and populates Access values so that queries that conflict with this access are rejected.

Source§

const IS_DENSE: bool = true

Returns true if (and only if) every table of every archetype matched by this fetch contains all of the matched components. Read more
Source§

type Fetch<'w> = UnsafeWorldCell<'w>

Per archetype/table state retrieved by this WorldQuery to compute Self::Item for each entity.
Source§

type State = SmallVec<[ComponentId; 4]>

State used to construct a Self::Fetch. This will be cached inside QueryState, so it is best to move as much data / computation here as possible to reduce the cost of constructing Self::Fetch.
Source§

fn shrink_fetch<'wlong: 'wshort, 'wshort>( fetch: Self::Fetch<'wlong>, ) -> Self::Fetch<'wshort>

This function manually implements subtyping for the query fetches.
Source§

unsafe fn init_fetch<'w>( world: UnsafeWorldCell<'w>, _: &Self::State, _: Tick, _: Tick, ) -> Self::Fetch<'w>

Creates a new instance of Self::Fetch, by combining data from the World with the cached Self::State. Readonly accesses resources registered in WorldQuery::update_component_access. Read more
Source§

unsafe fn set_archetype<'w>( _: &mut Self::Fetch<'w>, _: &Self::State, _: &'w Archetype, _: &'w Table, )

Adjusts internal state to account for the next Archetype. This will always be called on archetypes that match this WorldQuery. Read more
Source§

unsafe fn set_table<'w>(_: &mut Self::Fetch<'w>, _: &Self::State, _: &'w Table)

Adjusts internal state to account for the next Table. This will always be called on tables that match this WorldQuery. Read more
Source§

fn update_component_access( state: &Self::State, filtered_access: &mut FilteredAccess<ComponentId>, )

Adds any component accesses used by this WorldQuery to access. Read more
Source§

fn init_state(world: &mut World) -> Self::State

Creates and initializes a State for this WorldQuery type.
Source§

fn get_state(components: &Components) -> Option<Self::State>

Attempts to initialize a State for this WorldQuery type using read-only access to Components.
Source§

fn matches_component_set( _: &Self::State, _: &impl Fn(ComponentId) -> bool, ) -> bool

Returns true if this query matches a set of components. Otherwise, returns false. Read more
Source§

fn set_access(_state: &mut Self::State, _access: &FilteredAccess<ComponentId>)

Sets available accesses for implementors with dynamic access such as FilteredEntityRef or FilteredEntityMut. Read more
Source§

impl<B: Bundle> EntityEquivalent for EntityMutExcept<'_, B>

Source§

impl<B: Bundle> Eq for EntityMutExcept<'_, B>

Auto Trait Implementations§

§

impl<'w, B> Freeze for EntityMutExcept<'w, B>

§

impl<'w, B> !RefUnwindSafe for EntityMutExcept<'w, B>

§

impl<'w, B> Send for EntityMutExcept<'w, B>

§

impl<'w, B> Sync for EntityMutExcept<'w, B>

§

impl<'w, B> Unpin for EntityMutExcept<'w, B>
where B: Unpin,

§

impl<'w, B> !UnwindSafe for EntityMutExcept<'w, B>

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> 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<Q, K> Comparable<K> for Q
where Q: Ord + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
Source§

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

Source§

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

Converts Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Converts Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

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

Converts &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> DowncastSend for T
where T: Any + Send,

Source§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> DynEq for T
where T: Any + Eq,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Casts the type to dyn Any.
Source§

fn dyn_eq(&self, other: &(dyn DynEq + 'static)) -> bool

This method tests for self and other values to be equal. Read more
Source§

impl<T> DynHash for T
where T: DynEq + Hash,

Source§

fn as_dyn_eq(&self) -> &(dyn DynEq + 'static)

Casts the type to dyn Any.
Source§

fn dyn_hash(&self, state: &mut dyn Hasher)

Feeds this value into the given Hasher.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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, 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<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<T> ConditionalSend for T
where T: Send,