pub struct ComponentTree { /* private fields */ }
Expand description
Manager for the component tree
Handles parent-child relationships, lifecycle coordination, and efficient updates
Implementations§
Source§impl ComponentTree
impl ComponentTree
Sourcepub fn set_root(&self, component_id: ComponentId) -> TreeResult<()>
pub fn set_root(&self, component_id: ComponentId) -> TreeResult<()>
Set the root component
Sourcepub fn root_id(&self) -> TreeResult<Option<ComponentId>>
pub fn root_id(&self) -> TreeResult<Option<ComponentId>>
Get the root component ID
Sourcepub fn add_component(
&self,
component: ComponentInstance,
) -> TreeResult<ComponentId>
pub fn add_component( &self, component: ComponentInstance, ) -> TreeResult<ComponentId>
Add a component to the tree
Sourcepub fn remove_component(&self, id: ComponentId) -> TreeResult<()>
pub fn remove_component(&self, id: ComponentId) -> TreeResult<()>
Remove a component from the tree
Sourcepub fn add_child(
&self,
parent_id: ComponentId,
child_id: ComponentId,
) -> TreeResult<()>
pub fn add_child( &self, parent_id: ComponentId, child_id: ComponentId, ) -> TreeResult<()>
Add a child component to a parent
Sourcepub fn remove_child(
&self,
parent_id: ComponentId,
child_id: ComponentId,
) -> TreeResult<()>
pub fn remove_child( &self, parent_id: ComponentId, child_id: ComponentId, ) -> TreeResult<()>
Remove a child from a parent
Sourcepub fn get_component(
&self,
id: ComponentId,
) -> TreeResult<Arc<RwLock<ComponentInstance>>>
pub fn get_component( &self, id: ComponentId, ) -> TreeResult<Arc<RwLock<ComponentInstance>>>
Get a component instance by ID
Sourcepub fn get_lifecycle_manager(
&self,
id: ComponentId,
) -> TreeResult<Arc<RwLock<LifecycleManager>>>
pub fn get_lifecycle_manager( &self, id: ComponentId, ) -> TreeResult<Arc<RwLock<LifecycleManager>>>
Get a lifecycle manager by component ID
Sourcepub fn initialize_component(&self, id: ComponentId) -> TreeResult<()>
pub fn initialize_component(&self, id: ComponentId) -> TreeResult<()>
Initialize a component
Sourcepub fn mount_component(&self, id: ComponentId) -> TreeResult<()>
pub fn mount_component(&self, id: ComponentId) -> TreeResult<()>
Mount a component
Sourcepub fn unmount_component(&self, id: ComponentId) -> TreeResult<()>
pub fn unmount_component(&self, id: ComponentId) -> TreeResult<()>
Unmount a component
Sourcepub fn render_component(&self, id: ComponentId) -> TreeResult<Vec<Node>>
pub fn render_component(&self, id: ComponentId) -> TreeResult<Vec<Node>>
Render a component
Sourcepub fn has_component(&self, id: ComponentId) -> bool
pub fn has_component(&self, id: ComponentId) -> bool
Check if a component exists in the tree
Sourcepub fn get_children(&self, id: ComponentId) -> TreeResult<Vec<ComponentId>>
pub fn get_children(&self, id: ComponentId) -> TreeResult<Vec<ComponentId>>
Get the children of a component
Sourcepub fn get_parent(&self, id: ComponentId) -> TreeResult<Option<ComponentId>>
pub fn get_parent(&self, id: ComponentId) -> TreeResult<Option<ComponentId>>
Get the parent of a component
Sourcepub fn mount_component_tree(&self, id: ComponentId) -> TreeResult<()>
pub fn mount_component_tree(&self, id: ComponentId) -> TreeResult<()>
Recursively mount a component and all its children
Sourcepub fn unmount_component_tree(&self, id: ComponentId) -> TreeResult<()>
pub fn unmount_component_tree(&self, id: ComponentId) -> TreeResult<()>
Recursively unmount a component and all its children
Sourcepub fn update_component<P: Props + 'static>(
&self,
id: ComponentId,
props: P,
) -> TreeResult<()>
pub fn update_component<P: Props + 'static>( &self, id: ComponentId, props: P, ) -> TreeResult<()>
Update a component with new props
Sourcepub fn update_component_tree<P: Props + Clone + 'static>(
&self,
id: ComponentId,
props: P,
) -> TreeResult<()>
pub fn update_component_tree<P: Props + Clone + 'static>( &self, id: ComponentId, props: P, ) -> TreeResult<()>
Recursively update a component and its children if needed
Sourcepub fn get_all_components(&self) -> TreeResult<Vec<ComponentId>>
pub fn get_all_components(&self) -> TreeResult<Vec<ComponentId>>
Get all components in the tree
Sourcepub fn get_components_to_update(&self) -> TreeResult<Vec<ComponentId>>
pub fn get_components_to_update(&self) -> TreeResult<Vec<ComponentId>>
Get all components that need updating
Sourcepub fn detect_state_changes(&self, id: ComponentId) -> TreeResult<bool>
pub fn detect_state_changes(&self, id: ComponentId) -> TreeResult<bool>
Perform state change detection for a component
Sourcepub fn batch_update_components(&self, ids: &[ComponentId]) -> TreeResult<usize>
pub fn batch_update_components(&self, ids: &[ComponentId]) -> TreeResult<usize>
Batch update multiple components