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,
registry: &TypeRegistry
)
pub fn insert( &self, entity: &mut EntityWorldMut<'_>, bundle: &dyn Reflect, registry: &TypeRegistry )
sourcepub fn apply<'a>(
&self,
entity: impl Into<EntityMut<'a>>,
bundle: &dyn Reflect,
registry: &TypeRegistry
)
pub fn apply<'a>( &self, entity: impl Into<EntityMut<'a>>, 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 moreAuto Trait Implementations§
impl Freeze for ReflectBundle
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.