Trait cuicui_dsl::BuildChildren
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
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
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
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
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
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
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
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
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
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.