Struct bevy::ecs::storage::ComponentSparseSet
[−]pub struct ComponentSparseSet { /* private fields */ }
Expand description
A sparse data structure of Components
Designed for relatively fast insertions and deletions.
Implementations
impl ComponentSparseSet
impl ComponentSparseSet
pub fn new(
component_info: &ComponentInfo,
capacity: usize
) -> ComponentSparseSet
pub fn clear(&mut self)
pub fn len(&self) -> usize
pub fn is_empty(&self) -> bool
pub unsafe fn insert(
&mut self,
entity: Entity,
value: *mut u8,
change_tick: u32
)
pub unsafe fn insert(
&mut self,
entity: Entity,
value: *mut u8,
change_tick: u32
)
Inserts the entity
key and component value
pair into this sparse
set. This collection takes ownership of the contents of value
, and
will drop the value when needed. Also, it may overwrite the contents of
the value
pointer if convenient. The caller is responsible for
ensuring it does not drop *value
after calling insert
.
Safety
- The
value
pointer must point to a valid address that matches theLayout
inside theComponentInfo
given when constructing this sparse set. - The caller is responsible for ensuring it does not drop
*value
after callinginsert
.
pub fn contains(&self, entity: Entity) -> bool
pub fn get(&self, entity: Entity) -> Option<*mut u8>
pub fn get(&self, entity: Entity) -> Option<*mut u8>
Safety
ensure the same entity is not accessed twice at the same time
pub unsafe fn get_with_ticks(
&self,
entity: Entity
) -> Option<(*mut u8, *mut ComponentTicks)>
pub unsafe fn get_with_ticks(
&self,
entity: Entity
) -> Option<(*mut u8, *mut ComponentTicks)>
Safety
ensure the same entity is not accessed twice at the same time
pub fn get_ticks(&self, entity: Entity) -> Option<&ComponentTicks>
pub fn remove_and_forget(&mut self, entity: Entity) -> Option<*mut u8>
pub fn remove_and_forget(&mut self, entity: Entity) -> Option<*mut u8>
Removes the entity
from this sparse set and returns a pointer to the associated value (if
it exists). It is the caller’s responsibility to drop the returned ptr (if Some is
returned).
pub fn remove(&mut self, entity: Entity) -> bool
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for ComponentSparseSet
impl !Send for ComponentSparseSet
impl !Sync for ComponentSparseSet
impl Unpin for ComponentSparseSet
impl UnwindSafe for ComponentSparseSet
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<F, A>impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<F, A>impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
Convert 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
. Read more
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
pub fn as_any(&self) -> &(dyn Any + 'static)
pub fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
fn instrument(self, span: Span) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;
sourcefn in_current_span(self) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
fn in_current_span(self) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
where
S: Into<Dispatch>,
T: Future, type Output = <T as Future>::Output;
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
fn with_current_subscriber(self) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more