Struct bevy_ecs::reflect::ReflectBundle
source · pub struct ReflectBundle(/* private fields */);
Expand description
A struct used to operate on reflected Bundle
trait of a type.
A ReflectBundle
for type T
can be obtained via
bevy_reflect::TypeRegistration::data
.
Implementations§
source§impl ReflectBundle
impl ReflectBundle
sourcepub fn insert(&self, entity: &mut EntityWorldMut<'_>, bundle: &dyn Reflect)
pub fn insert(&self, entity: &mut EntityWorldMut<'_>, bundle: &dyn Reflect)
sourcepub fn apply(
&self,
entity: &mut EntityWorldMut<'_>,
bundle: &dyn Reflect,
registry: &TypeRegistry
)
pub fn apply( &self, entity: &mut EntityWorldMut<'_>, bundle: &dyn Reflect, registry: &TypeRegistry )
sourcepub fn apply_or_insert(
&self,
entity: &mut EntityWorldMut<'_>,
bundle: &dyn Reflect,
registry: &TypeRegistry
)
pub fn apply_or_insert( &self, entity: &mut EntityWorldMut<'_>, bundle: &dyn Reflect, registry: &TypeRegistry )
Uses reflection to set the value of this Bundle
type in the entity to the given value or insert a new one if it does not exist.
sourcepub fn remove(&self, entity: &mut EntityWorldMut<'_>)
pub fn remove(&self, entity: &mut EntityWorldMut<'_>)
Removes this Bundle
type from the entity. Does nothing if it doesn’t exist.
sourcepub fn new(fns: ReflectBundleFns) -> Self
pub fn new(fns: ReflectBundleFns) -> Self
Create a custom implementation of ReflectBundle
.
This is an advanced feature, useful for scripting implementations, that should not be used by most users unless you know what you are doing.
Usually you should derive Reflect
and add the #[reflect(Bundle)]
bundle
to generate a ReflectBundle
implementation automatically.
See ReflectBundleFns
for more information.
sourcepub fn fn_pointers(&self) -> &ReflectBundleFns
pub fn fn_pointers(&self) -> &ReflectBundleFns
The underlying function pointers implementing methods on ReflectBundle
.
This is useful when you want to keep track locally of an individual function pointer.
Calling TypeRegistry::get
followed by
TypeRegistration::data::<ReflectBundle>
can be costly if done several
times per frame. Consider cloning ReflectBundle
and keeping it
between frames, cloning a ReflectBundle
is very cheap.
If you only need a subset of the methods on ReflectBundle
,
use fn_pointers
to get the underlying ReflectBundleFns
and copy the subset of function pointers you care about.
Trait Implementations§
source§impl Clone for ReflectBundle
impl Clone for ReflectBundle
source§fn clone(&self) -> ReflectBundle
fn clone(&self) -> ReflectBundle
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<B: Bundle + Reflect + FromReflect> FromType<B> for ReflectBundle
impl<B: Bundle + Reflect + FromReflect> FromType<B> for ReflectBundle
Auto Trait Implementations§
impl RefUnwindSafe for ReflectBundle
impl Send for ReflectBundle
impl Sync for ReflectBundle
impl Unpin for ReflectBundle
impl UnwindSafe for ReflectBundle
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
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.