Struct hecs::EntityBuilderClone
source · [−]pub struct EntityBuilderClone { /* private fields */ }
Expand description
Variant of EntityBuilder
that clones components on use
let mut world = World::new();
let mut builder = EntityBuilderClone::new();
builder.add(123).add("abc");
let bundle = builder.build();
let e = world.spawn(&bundle);
let f = world.spawn(&bundle); // `&bundle` can be used many times
assert_eq!(*world.get::<&i32>(e).unwrap(), 123);
assert_eq!(*world.get::<&&str>(e).unwrap(), "abc");
assert_eq!(*world.get::<&i32>(f).unwrap(), 123);
assert_eq!(*world.get::<&&str>(f).unwrap(), "abc");
Implementations
sourceimpl EntityBuilderClone
impl EntityBuilderClone
sourcepub fn add<T: Component + Clone>(&mut self, component: T) -> &mut Self
pub fn add<T: Component + Clone>(&mut self, component: T) -> &mut Self
Add component
to the entity.
If the bundle already contains a component of type T
, it will be dropped and replaced with
the most recently added one.
sourcepub fn add_bundle(&mut self, bundle: impl DynamicBundleClone) -> &mut Self
pub fn add_bundle(&mut self, bundle: impl DynamicBundleClone) -> &mut Self
Add all components in bundle
to the entity.
If the bundle contains any component which matches the type of a component
already in the EntityBuilder
, the newly added component from the bundle
will replace the old component and the old component will be dropped.
sourcepub fn build(self) -> BuiltEntityClone
pub fn build(self) -> BuiltEntityClone
Convert into a value whose shared references are DynamicBundle
s suitable for repeated
spawning
sourcepub fn get<'a, T: ComponentRefShared<'a>>(&'a self) -> Option<T>
pub fn get<'a, T: ComponentRefShared<'a>>(&'a self) -> Option<T>
Borrow a shared reference T
to some component type, if it exists
Takes a reference as its type parameter for consistency with
EntityRef::get
, even though it cannot be a unique reference
because EntityBuilderClone
does not perform dynamic borrow checking.
sourcepub fn get_mut<'a, T: ComponentRef<'a>>(&'a mut self) -> Option<T>
pub fn get_mut<'a, T: ComponentRef<'a>>(&'a mut self) -> Option<T>
Borrow a shared or unique reference T
to some component type, if it exists
sourcepub fn component_types(&self) -> impl Iterator<Item = TypeId> + '_
pub fn component_types(&self) -> impl Iterator<Item = TypeId> + '_
Enumerate the types of the entity builder’s components
Trait Implementations
sourceimpl Clone for EntityBuilderClone
impl Clone for EntityBuilderClone
sourcefn clone(&self) -> EntityBuilderClone
fn clone(&self) -> EntityBuilderClone
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Default for EntityBuilderClone
impl Default for EntityBuilderClone
sourcefn default() -> EntityBuilderClone
fn default() -> EntityBuilderClone
Returns the “default value” for a type. Read more
sourceimpl From<BuiltEntityClone> for EntityBuilderClone
impl From<BuiltEntityClone> for EntityBuilderClone
sourcefn from(x: BuiltEntityClone) -> Self
fn from(x: BuiltEntityClone) -> Self
Converts to this type from the input type.
sourceimpl From<EntityBuilderClone> for BuiltEntityClone
impl From<EntityBuilderClone> for BuiltEntityClone
sourcefn from(x: EntityBuilderClone) -> Self
fn from(x: EntityBuilderClone) -> Self
Converts to this type from the input type.
Auto Trait Implementations
impl RefUnwindSafe for EntityBuilderClone
impl Send for EntityBuilderClone
impl Sync for EntityBuilderClone
impl Unpin for EntityBuilderClone
impl UnwindSafe for EntityBuilderClone
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more