pub struct AutoQueryMut<'a, T: Any> { /* private fields */ }Expand description
AutoQueryMut is a struct that allows quick access of every instance of a single component mutably. (The immutable variant is AutoQuery)
§WARNING
If you ever get an error: “thread ‘main’ panicked at ‘already borrowed: BorrowMutError’” this means you have two mutable borrows to the same data. This could be because you have two mutable auto queries in the same scope. The solution is to either drop them manually or to enclose them in a block:
use sceller::prelude::*;
struct Health; // example struct
{
let ents = Entities::default();
let query = Query::new(&ents);
let mut auto = query.auto::<Health>();
// <snip!>
} //<- ensures that the mutable borrow is dropped at the end of this blockIt contains ‘phantom’ which is a PhantomData
Pretty much all of this struct’s functionality is implmenting IntoIterator, in which the reference to Entities is used to get all components of the AutoQueryMut’s type ‘T’.
Implementations§
Trait Implementations§
Source§impl<'a, T: 'static> IntoIterator for AutoQueryMut<'a, T>
impl<'a, T: 'static> IntoIterator for AutoQueryMut<'a, T>
Auto Trait Implementations§
impl<'a, T> Freeze for AutoQueryMut<'a, T>
impl<'a, T> !RefUnwindSafe for AutoQueryMut<'a, T>
impl<'a, T> !Send for AutoQueryMut<'a, T>
impl<'a, T> !Sync for AutoQueryMut<'a, T>
impl<'a, T> Unpin for AutoQueryMut<'a, T>where
T: Unpin,
impl<'a, T> UnsafeUnpin for AutoQueryMut<'a, T>
impl<'a, T> !UnwindSafe for AutoQueryMut<'a, T>
Blanket Implementations§
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
Mutably borrows from an owned value. Read more