pub struct Query<'w, Q>where
Q: WorldQuery + ?Sized,{ /* private fields */ }Implementations§
Source§impl<'w, Q> Query<'w, Q>where
Q: WorldQuery,
impl<'w, Q> Query<'w, Q>where
Q: WorldQuery,
Sourcepub fn iter_mut<'a>(&'a mut self) -> QueryIter<'a, 'w, Q>
pub fn iter_mut<'a>(&'a mut self) -> QueryIter<'a, 'w, Q>
Eleman-başına Mut<T> veren mutable iterasyon. &mut self aldığından aynı query
üzerinde ikinci bir canlı mutable iterasyon derleme zamanında engellenir.
Sourcepub fn iter_chunks_mut<'a>(&'a mut self) -> QueryChunksIter<'a, 'w, Q>
pub fn iter_chunks_mut<'a>(&'a mut self) -> QueryChunksIter<'a, 'w, Q>
Toplu (bulk) yazma için mutable chunk iterasyonu (&mut [T] döndürür).
Ham bir dilim verdiği için hangi elemanların yazıldığını izleyemez; bu yüzden verilen tüm satırları temkinli (conservative) olarak “changed” işaretler. Bu, gerçek bir değişikliği asla KAÇIRMAZ (change detection için güvenli taraf), ama yalnızca bir kısmını yazarsanız yazılmayanları da “changed” gösterir (false positive). Doğru aracı seçin:
- Sadece okuyacaksanız →
Query::iter_chunks(işaretlemez). - Bir kısmını hassas işaretleyerek yazacaksanız →
iter_mut(eleman başınaMut). - Hepsini yazacaksanız → bu metot (hepsini işaretlemek zaten doğru).
Sourcepub fn get_mut(&mut self, entity_id: u32) -> Option<<Q as WorldQuery>::Item<'_>>
pub fn get_mut(&mut self, entity_id: u32) -> Option<<Q as WorldQuery>::Item<'_>>
Ham u32 id ile mutable erişim — generation kontrolü yapmaz (bkz. Query::get).
&mut self aldığından dönen Mut query’yi özel olarak ödünç alır; aynı anda ikinci
bir get_mut/iter_mut derlenmez.
Sourcepub fn get_mut_entity(
&mut self,
entity: Entity,
) -> Option<<Q as WorldQuery>::Item<'_>>
pub fn get_mut_entity( &mut self, entity: Entity, ) -> Option<<Q as WorldQuery>::Item<'_>>
Generation-doğrulamalı mutable erişim (bkz. Query::get_entity).
Sourcepub fn par_for_each_mut<F>(&mut self, func: F)
pub fn par_for_each_mut<F>(&mut self, func: F)
İş parçacığı havuzu (Work-Stealing) ile çalışan lock-free paralel mutable iterasyon.
pub fn entity_count(&self) -> usize
pub fn len(&self) -> usize
pub fn is_empty(&self) -> bool
Source§impl<'w, Q> Query<'w, Q>where
Q: ReadOnlyQuery,
impl<'w, Q> Query<'w, Q>where
Q: ReadOnlyQuery,
pub fn iter<'a>(&'a self) -> QueryIter<'a, 'w, Q>
Sourcepub fn iter_chunks<'a>(&'a self) -> QueryChunksIter<'a, 'w, Q>
pub fn iter_chunks<'a>(&'a self) -> QueryChunksIter<'a, 'w, Q>
Salt-okunur SIMD-dostu chunk iterasyonu (&[T] döndürür). Değişiklik tespitini
(change detection) ETKİLEMEZ — bileşenleri okumak için kullanın.
§Panics
Satır-başı filtre GEREKTİREN bir query’de (SparseSet With/Without,
Changed/Added, Or) panikler: chunk iterasyonu arketipin TÜM bitişik dilimini
döndürür, bu filtreler ise satır-başı seçer (bkz. WorldQuery::has_row_filter).
Sessizce filtrelenmemiş sonuç döndürmek yerine yüksek sesle reddeder — bunun yerine
Query::iter/Query::iter_mut kullanın. (Tablo With/Without güvenlidir.)
Sourcepub fn get(&self, entity_id: u32) -> Option<<Q as WorldQuery>::Item<'_>>
pub fn get(&self, entity_id: u32) -> Option<<Q as WorldQuery>::Item<'_>>
Ham u32 id ile erişim. DİKKAT: generation kontrolü YAPMAZ. Despawn edilip
slotu yeniden kullanılan bir id verilirse, o slottaki YENİ entity’nin verisi
döner (use-after-free benzeri sessiz hata). Elinizde bir Entity handle’ı varsa
Query::get_entity kullanın — o, generation’ı doğrular.
Sourcepub fn get_entity(&self, entity: Entity) -> Option<<Q as WorldQuery>::Item<'_>>
pub fn get_entity(&self, entity: Entity) -> Option<<Q as WorldQuery>::Item<'_>>
Generation-doğrulamalı erişim: entity artık canlı değilse (despawn edilmiş veya
slotu başka bir entity’ye verilmiş) None döner. Stale-handle ile yanlış entity’nin
verisini okumayı engeller. Elinizde bir Entity handle’ı varsa bunu tercih edin.
Sourcepub fn contains(&self, entity_id: u32) -> bool
pub fn contains(&self, entity_id: u32) -> bool
Belirli bir entity’nin bu query’ye ait olup olmadığını kontrol eder.
pub fn entities<'a>(&'a self) -> impl Iterator<Item = u32> + 'a
Sourcepub fn par_for_each<F>(&self, func: F)
pub fn par_for_each<F>(&self, func: F)
İş parçacığı havuzu (Work-Stealing) ile çalışan lock-free paralel iterasyon
Trait Implementations§
Source§impl<Q> SystemParam for Query<'static, Q>where
Q: WorldQuery + 'static,
impl<Q> SystemParam for Query<'static, Q>where
Q: WorldQuery + 'static,
type Item<'w> = Query<'w, Q>
fn fetch<'w>( world: &'w World, _dt: f32, ) -> Result<<Query<'static, Q> as SystemParam>::Item<'w>, SystemParamFetchError>
fn get_access_info(info: &mut AccessInfo)
Auto Trait Implementations§
impl<'w, Q> !RefUnwindSafe for Query<'w, Q>
impl<'w, Q> !UnwindSafe for Query<'w, Q>
impl<'w, Q> Freeze for Query<'w, Q>where
Q: ?Sized,
impl<'w, Q> Send for Query<'w, Q>
impl<'w, Q> Sync for Query<'w, Q>
impl<'w, Q> Unpin for Query<'w, Q>
impl<'w, Q> UnsafeUnpin for Query<'w, Q>where
Q: ?Sized,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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)
fn as_any(&self) -> &(dyn Any + 'static)
&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)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&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
impl<T> DowncastSync for T
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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