Struct hecs::QueryBorrow
source · pub struct QueryBorrow<'w, Q: Query> { /* private fields */ }
Expand description
A borrow of a World
sufficient to execute the query Q
Note that borrows are not released until this object is dropped.
Implementations§
source§impl<'w, Q: Query> QueryBorrow<'w, Q>
impl<'w, Q: Query> QueryBorrow<'w, Q>
sourcepub fn iter_batched(&mut self, batch_size: u32) -> BatchedIter<'_, Q> ⓘ
pub fn iter_batched(&mut self, batch_size: u32) -> BatchedIter<'_, Q> ⓘ
Like iter
, but returns child iterators of at most batch_size
elements
Useful for distributing work over a threadpool.
sourcepub fn with<R: Query>(self) -> QueryBorrow<'w, With<Q, R>>
pub fn with<R: Query>(self) -> QueryBorrow<'w, With<Q, R>>
Transform the query into one that requires another query be satisfied
Convenient when the values of the components in the other query are not of interest.
Equivalent to using a query type wrapped in With
.
Example
let mut world = World::new();
let a = world.spawn((123, true, "abc"));
let b = world.spawn((456, false));
let c = world.spawn((42, "def"));
let entities = world.query::<&i32>()
.with::<&bool>()
.iter()
.map(|(e, &i)| (e, i)) // Copy out of the world
.collect::<Vec<_>>();
assert_eq!(entities.len(), 2);
assert!(entities.contains(&(a, 123)));
assert!(entities.contains(&(b, 456)));
sourcepub fn without<R: Query>(self) -> QueryBorrow<'w, Without<Q, R>>
pub fn without<R: Query>(self) -> QueryBorrow<'w, Without<Q, R>>
Transform the query into one that skips entities satisfying another
Equivalent to using a query type wrapped in Without
.
Example
let mut world = World::new();
let a = world.spawn((123, true, "abc"));
let b = world.spawn((456, false));
let c = world.spawn((42, "def"));
let entities = world.query::<&i32>()
.without::<&bool>()
.iter()
.map(|(e, &i)| (e, i)) // Copy out of the world
.collect::<Vec<_>>();
assert_eq!(entities, &[(c, 42)]);
Trait Implementations§
source§impl<'w, Q: Query> Drop for QueryBorrow<'w, Q>
impl<'w, Q: Query> Drop for QueryBorrow<'w, Q>
source§impl<'q, 'w, Q: Query> IntoIterator for &'q mut QueryBorrow<'w, Q>
impl<'q, 'w, Q: Query> IntoIterator for &'q mut QueryBorrow<'w, Q>
impl<'w, Q: Query> Send for QueryBorrow<'w, Q>
impl<'w, Q: Query> Sync for QueryBorrow<'w, Q>
Auto Trait Implementations§
impl<'w, Q> RefUnwindSafe for QueryBorrow<'w, Q>where
Q: RefUnwindSafe,
impl<'w, Q> Unpin for QueryBorrow<'w, Q>where
Q: Unpin,
impl<'w, Q> UnwindSafe for QueryBorrow<'w, Q>where
Q: UnwindSafe,
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