pub trait BuildChildren {
    // Required methods
    fn with_children(
        &mut self,
        f: impl FnOnce(&mut ChildBuilder<'_, '_, '_>)
    ) -> &mut Self;
    fn push_children(&mut self, children: &[Entity]) -> &mut Self;
    fn insert_children(
        &mut self,
        index: usize,
        children: &[Entity]
    ) -> &mut Self;
    fn remove_children(&mut self, children: &[Entity]) -> &mut Self;
    fn add_child(&mut self, child: Entity) -> &mut Self;
    fn clear_children(&mut self) -> &mut Self;
    fn replace_children(&mut self, children: &[Entity]) -> &mut Self;
    fn set_parent(&mut self, parent: Entity) -> &mut Self;
    fn remove_parent(&mut self) -> &mut Self;
}
Expand description

Trait for removing, adding and replacing children and parents of an entity.

Required Methods§

fn with_children( &mut self, f: impl FnOnce(&mut ChildBuilder<'_, '_, '_>) ) -> &mut Self

Takes a closure which builds children for this entity using ChildBuilder.

fn push_children(&mut self, children: &[Entity]) -> &mut Self

Pushes children to the back of the builder’s children. For any entities that are already a child of this one, this method does nothing.

If the children were previously children of another parent, that parent’s [Children] component will have those children removed from its list. Removing all children from a parent causes its [Children] component to be removed from the entity.

Panics

Panics if any of the children are the same as the parent.

fn insert_children(&mut self, index: usize, children: &[Entity]) -> &mut Self

Inserts children at the given index.

If the children were previously children of another parent, that parent’s [Children] component will have those children removed from its list. Removing all children from a parent causes its [Children] component to be removed from the entity.

Panics

Panics if any of the children are the same as the parent.

fn remove_children(&mut self, children: &[Entity]) -> &mut Self

Removes the given children

Removing all children from a parent causes its [Children] component to be removed from the entity.

fn add_child(&mut self, child: Entity) -> &mut Self

Adds a single child.

If the children were previously children of another parent, that parent’s [Children] component will have those children removed from its list. Removing all children from a parent causes its [Children] component to be removed from the entity.

Panics

Panics if the child is the same as the parent.

fn clear_children(&mut self) -> &mut Self

Removes all children from this entity. The [Children] component will be removed if it exists, otherwise this does nothing.

fn replace_children(&mut self, children: &[Entity]) -> &mut Self

Removes all current children from this entity, replacing them with the specified list of entities.

The removed children will have their [Parent] component removed.

Panics

Panics if any of the children are the same as the parent.

fn set_parent(&mut self, parent: Entity) -> &mut Self

Sets the parent of this entity.

If this entity already had a parent, the parent’s [Children] component will have this child removed from its list. Removing all children from a parent causes its [Children] component to be removed from the entity.

Panics

Panics if the parent is the same as the child.

fn remove_parent(&mut self) -> &mut Self

Removes the [Parent] of this entity.

Also removes this entity from its parent’s [Children] component. Removing all children from a parent causes its [Children] component to be removed from the entity.

Object Safety§

This trait is not object safe.

Implementors§

§

impl<'w, 's, 'a> BuildChildren for EntityCommands<'w, 's, 'a>