Skip to main content

Mut

Struct Mut 

Source
pub struct Mut<'w, T> { /* private fields */ }
Expand description

A smart pointer providing mutable access to a component that defers change-tick stamping to DerefMut. Holding a Mut<T> without writing through it leaves the component’s changed_tick untouched, so query_changed and incremental extraction see only entities that were actually mutated.

§Interior mutability

Components that use interior mutability (AtomicUsize, Mutex<T>, etc.) can be mutated through Deref without triggering DerefMut. In that case, call set_changed() explicitly to stamp the change tick and ensure query_changed reports the modification.

Implementations§

Source§

impl<T> Mut<'_, T>

Source

pub fn set_changed(&mut self)

Manually stamp this component’s changed_tick at the current tick.

Use this when mutating through interior mutability (e.g., atomics) where DerefMut is not triggered. Has no effect if the component was already stamped by DerefMut in the same tick.

Trait Implementations§

Source§

impl<T> Deref for Mut<'_, T>

Source§

type Target = T

The resulting type after dereferencing.
Source§

fn deref(&self) -> &T

Dereferences the value.
Source§

impl<T> DerefMut for Mut<'_, T>

Source§

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

Mutably dereferences the value.

Auto Trait Implementations§

§

impl<'w, T> !Send for Mut<'w, T>

§

impl<'w, T> !Sync for Mut<'w, T>

§

impl<'w, T> !UnwindSafe for Mut<'w, T>

§

impl<'w, T> Freeze for Mut<'w, T>

§

impl<'w, T> RefUnwindSafe for Mut<'w, T>

§

impl<'w, T> Unpin for Mut<'w, T>

§

impl<'w, T> UnsafeUnpin for Mut<'w, 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> 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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.