pub struct Container {Show 64 fields
pub id: usize,
pub str_id: Option<String>,
pub classes: Vec<String>,
pub data: BTreeMap<String, String>,
pub element: Element,
pub children: Vec<Container>,
pub direction: LayoutDirection,
pub overflow_x: LayoutOverflow,
pub overflow_y: LayoutOverflow,
pub grid_cell_size: Option<Number>,
pub justify_content: Option<JustifyContent>,
pub align_items: Option<AlignItems>,
pub text_align: Option<TextAlign>,
pub white_space: Option<WhiteSpace>,
pub text_decoration: Option<TextDecoration>,
pub font_family: Option<Vec<String>>,
pub font_weight: Option<FontWeight>,
pub width: Option<Number>,
pub min_width: Option<Number>,
pub max_width: Option<Number>,
pub height: Option<Number>,
pub min_height: Option<Number>,
pub max_height: Option<Number>,
pub flex: Option<Flex>,
pub column_gap: Option<Number>,
pub row_gap: Option<Number>,
pub opacity: Option<Number>,
pub left: Option<Number>,
pub right: Option<Number>,
pub top: Option<Number>,
pub bottom: Option<Number>,
pub translate_x: Option<Number>,
pub translate_y: Option<Number>,
pub cursor: Option<Cursor>,
pub user_select: Option<UserSelect>,
pub overflow_wrap: Option<OverflowWrap>,
pub text_overflow: Option<TextOverflow>,
pub position: Option<Position>,
pub background: Option<Color>,
pub border_top: Option<(Color, Number)>,
pub border_right: Option<(Color, Number)>,
pub border_bottom: Option<(Color, Number)>,
pub border_left: Option<(Color, Number)>,
pub border_top_left_radius: Option<Number>,
pub border_top_right_radius: Option<Number>,
pub border_bottom_left_radius: Option<Number>,
pub border_bottom_right_radius: Option<Number>,
pub margin_left: Option<Number>,
pub margin_right: Option<Number>,
pub margin_top: Option<Number>,
pub margin_bottom: Option<Number>,
pub padding_left: Option<Number>,
pub padding_right: Option<Number>,
pub padding_top: Option<Number>,
pub padding_bottom: Option<Number>,
pub font_size: Option<Number>,
pub color: Option<Color>,
pub state: Option<Value>,
pub hidden: Option<bool>,
pub debug: Option<bool>,
pub visibility: Option<Visibility>,
pub route: Option<Route>,
pub actions: Vec<Action>,
pub overrides: Vec<ConfigOverride>,
}Expand description
Represents a layout container with style properties and child elements.
The main building block for constructing UI layouts. Contains all layout and styling properties needed for rendering, along with child containers forming a tree structure.
Fields§
§id: usizeUnique numeric identifier.
str_id: Option<String>Optional string identifier.
classes: Vec<String>CSS class names.
data: BTreeMap<String, String>Custom data attributes.
element: ElementElement type and content.
children: Vec<Container>Child containers.
direction: LayoutDirectionLayout direction (row or column).
overflow_x: LayoutOverflowHorizontal overflow behavior.
overflow_y: LayoutOverflowVertical overflow behavior.
grid_cell_size: Option<Number>Grid cell size for grid layouts.
justify_content: Option<JustifyContent>Main axis alignment (flex-start, center, space-between, etc.).
align_items: Option<AlignItems>Cross axis alignment (flex-start, center, stretch, etc.).
text_align: Option<TextAlign>Text alignment (left, center, right, justify).
white_space: Option<WhiteSpace>White space handling (normal, nowrap, pre, etc.).
text_decoration: Option<TextDecoration>Text decoration styling.
font_family: Option<Vec<String>>Font family list.
font_weight: Option<FontWeight>Font weight.
width: Option<Number>Width of the container.
min_width: Option<Number>Minimum width constraint.
max_width: Option<Number>Maximum width constraint.
height: Option<Number>Height of the container.
min_height: Option<Number>Minimum height constraint.
max_height: Option<Number>Maximum height constraint.
flex: Option<Flex>Flex sizing (grow, shrink, basis).
column_gap: Option<Number>Gap between columns in flex/grid layouts.
row_gap: Option<Number>Gap between rows in flex/grid layouts.
opacity: Option<Number>Opacity (0.0 to 1.0).
left: Option<Number>Left position for positioned elements.
right: Option<Number>Right position for positioned elements.
top: Option<Number>Top position for positioned elements.
bottom: Option<Number>Bottom position for positioned elements.
translate_x: Option<Number>Horizontal translation transform.
translate_y: Option<Number>Vertical translation transform.
cursor: Option<Cursor>Cursor style.
user_select: Option<UserSelect>User selection behavior.
overflow_wrap: Option<OverflowWrap>Text wrapping behavior.
text_overflow: Option<TextOverflow>Text overflow handling.
position: Option<Position>Position type (static, relative, absolute, fixed).
background: Option<Color>Background color.
border_top: Option<(Color, Number)>Top border (color and width).
border_right: Option<(Color, Number)>Right border (color and width).
border_bottom: Option<(Color, Number)>Bottom border (color and width).
border_left: Option<(Color, Number)>Left border (color and width).
border_top_left_radius: Option<Number>Top-left border radius.
border_top_right_radius: Option<Number>Top-right border radius.
border_bottom_left_radius: Option<Number>Bottom-left border radius.
border_bottom_right_radius: Option<Number>Bottom-right border radius.
margin_left: Option<Number>Left margin.
margin_right: Option<Number>Right margin.
margin_top: Option<Number>Top margin.
margin_bottom: Option<Number>Bottom margin.
padding_left: Option<Number>Left padding.
padding_right: Option<Number>Right padding.
padding_top: Option<Number>Top padding.
padding_bottom: Option<Number>Bottom padding.
font_size: Option<Number>Font size.
color: Option<Color>Text color.
state: Option<Value>Custom state data for dynamic behavior.
Whether the container is hidden.
debug: Option<bool>Whether to render debug information.
visibility: Option<Visibility>CSS visibility property.
route: Option<Route>Associated route for navigation.
actions: Vec<Action>Interactive actions bound to this container.
overrides: Vec<ConfigOverride>Conditional style overrides.
Implementations§
Source§impl Container
impl Container
Sourcepub fn iter_overrides(
&self,
recurse: bool,
) -> impl Iterator<Item = (&Container, &ConfigOverride)>
pub fn iter_overrides( &self, recurse: bool, ) -> impl Iterator<Item = (&Container, &ConfigOverride)>
Returns an iterator over config overrides for this container and optionally its children.
§Parameters
recurse- If true, includes overrides from all descendant containers
Sourcepub fn bfs(&self) -> BfsPaths
pub fn bfs(&self) -> BfsPaths
Creates a breadth-first search iterator for traversing the container tree.
Returns a BfsPaths structure that can be used to traverse containers level by level.
Sourcepub fn bfs_visit(&self, visitor: impl FnMut(&Container)) -> BfsPaths
pub fn bfs_visit(&self, visitor: impl FnMut(&Container)) -> BfsPaths
Performs a breadth-first search traversal with a visitor function.
Calls the visitor function for each container in breadth-first order.
Sourcepub fn bfs_visit_mut(&mut self, visitor: impl FnMut(&mut Container)) -> BfsPaths
pub fn bfs_visit_mut(&mut self, visitor: impl FnMut(&mut Container)) -> BfsPaths
Performs a breadth-first search traversal with a mutable visitor function.
Calls the visitor function for each container in breadth-first order, allowing mutation.
Source§impl Container
impl Container
Sourcepub const fn is_fixed(&self) -> bool
pub const fn is_fixed(&self) -> bool
Checks if this container has fixed or sticky positioning.
Returns true if the container’s position is set to Position::Fixed or Position::Sticky,
which removes it from the normal document flow and positions it relative to the viewport or
scroll container.
Sourcepub const fn is_raw(&self) -> bool
pub const fn is_raw(&self) -> bool
Checks if this container contains raw HTML content.
Returns true if the element is Element::Raw, which means it contains unescaped HTML
that will be rendered directly without further processing.
For escaped text content, see Self::is_text.
Sourcepub const fn is_text(&self) -> bool
pub const fn is_text(&self) -> bool
Checks if this container contains escaped text content.
Returns true if the element is Element::Text, which means it contains text
that will be HTML-escaped when rendered to prevent XSS attacks.
For raw unescaped HTML content, see Self::is_raw.
Source§impl Container
impl Container
Sourcepub fn is_visible(&self) -> bool
pub fn is_visible(&self) -> bool
Checks if this container is visible (not hidden).
Checks if this container is hidden.
Sourcepub fn is_flex_container(&self) -> bool
pub fn is_flex_container(&self) -> bool
Checks if this container uses flexbox layout.
Sourcepub fn visible_elements(&self) -> impl Iterator<Item = &Container>
pub fn visible_elements(&self) -> impl Iterator<Item = &Container>
Returns an iterator over visible child elements.
Sourcepub fn visible_elements_mut(&mut self) -> impl Iterator<Item = &mut Container>
pub fn visible_elements_mut(&mut self) -> impl Iterator<Item = &mut Container>
Returns a mutable iterator over visible child elements.
Sourcepub fn relative_positioned_elements(&self) -> impl Iterator<Item = &Container>
pub fn relative_positioned_elements(&self) -> impl Iterator<Item = &Container>
Returns an iterator over relatively positioned child elements.
Sourcepub fn relative_positioned_elements_mut(
&mut self,
) -> impl Iterator<Item = &mut Container>
pub fn relative_positioned_elements_mut( &mut self, ) -> impl Iterator<Item = &mut Container>
Returns a mutable iterator over relatively positioned child elements.
Sourcepub fn absolute_positioned_elements(&self) -> impl Iterator<Item = &Container>
pub fn absolute_positioned_elements(&self) -> impl Iterator<Item = &Container>
Returns an iterator over absolutely positioned child elements.
Sourcepub fn absolute_positioned_elements_mut(
&mut self,
) -> impl Iterator<Item = &mut Container>
pub fn absolute_positioned_elements_mut( &mut self, ) -> impl Iterator<Item = &mut Container>
Returns a mutable iterator over absolutely positioned child elements.
Sourcepub fn fixed_positioned_elements(&self) -> impl Iterator<Item = &Container>
pub fn fixed_positioned_elements(&self) -> impl Iterator<Item = &Container>
Returns an iterator over fixed positioned child elements.
Sourcepub fn fixed_positioned_elements_mut(
&mut self,
) -> impl Iterator<Item = &mut Container>
pub fn fixed_positioned_elements_mut( &mut self, ) -> impl Iterator<Item = &mut Container>
Returns a mutable iterator over fixed positioned child elements.
Sourcepub fn find_element_by_id(&self, id: usize) -> Option<&Container>
pub fn find_element_by_id(&self, id: usize) -> Option<&Container>
Finds a descendant container by its numeric ID.
Sourcepub fn find_element_by_id_mut(&mut self, id: usize) -> Option<&mut Container>
pub fn find_element_by_id_mut(&mut self, id: usize) -> Option<&mut Container>
Finds a descendant container by its numeric ID (mutable).
Sourcepub fn find_element_by_str_id(&self, str_id: &str) -> Option<&Container>
pub fn find_element_by_str_id(&self, str_id: &str) -> Option<&Container>
Finds a descendant container by its string ID.
Sourcepub fn find_element_by_class(&self, class: &str) -> Option<&Container>
pub fn find_element_by_class(&self, class: &str) -> Option<&Container>
Finds a descendant container by CSS class name.
Sourcepub fn find_element_by_str_id_mut(
&mut self,
str_id: &str,
) -> Option<&mut Container>
pub fn find_element_by_str_id_mut( &mut self, str_id: &str, ) -> Option<&mut Container>
Finds a descendant container by its string ID (mutable).
Sourcepub fn find_parent<'a>(&self, root: &'a mut Container) -> Option<&'a Container>
pub fn find_parent<'a>(&self, root: &'a mut Container) -> Option<&'a Container>
Finds the parent container of this container within the root tree.
Sourcepub fn find_parent_by_id(&self, id: usize) -> Option<&Container>
pub fn find_parent_by_id(&self, id: usize) -> Option<&Container>
Finds the parent container of a child with the given numeric ID.
Sourcepub fn find_parent_by_id_mut(&mut self, id: usize) -> Option<&mut Container>
pub fn find_parent_by_id_mut(&mut self, id: usize) -> Option<&mut Container>
Finds the parent container of a child with the given numeric ID (mutable).
Sourcepub fn find_parent_by_str_id_mut(&mut self, id: &str) -> Option<&mut Container>
pub fn find_parent_by_str_id_mut(&mut self, id: &str) -> Option<&mut Container>
Finds the parent container of a child with the given string ID (mutable).
Sourcepub fn replace_with_elements(
&mut self,
replacement: Vec<Container>,
root: &mut Container,
) -> Container
pub fn replace_with_elements( &mut self, replacement: Vec<Container>, root: &mut Container, ) -> Container
Replaces this container with multiple elements in the tree.
Finds this container’s parent in the tree and replaces this container with the provided replacement elements. Returns the original container that was replaced.
§Panics
- If the
Containeris the root node - If the
Containeris not properly attached to the tree
Sourcepub fn replace_id_children_with_elements(
&mut self,
replacement: Vec<Container>,
id: usize,
) -> Option<Vec<Container>>
pub fn replace_id_children_with_elements( &mut self, replacement: Vec<Container>, id: usize, ) -> Option<Vec<Container>>
Replaces all children of a container identified by numeric ID.
Finds the container with the given ID and replaces all of its children with the provided
replacement elements. Returns the original children that were replaced, or None if
no container with the given ID exists.
§Panics
- If the
Containeris not properly attached to the tree
Sourcepub fn replace_str_id_children_with_elements(
&mut self,
replacement: Vec<Container>,
id: &str,
) -> Option<Vec<Container>>
pub fn replace_str_id_children_with_elements( &mut self, replacement: Vec<Container>, id: &str, ) -> Option<Vec<Container>>
Replaces all children of a container identified by string ID.
Finds the container with the given string ID and replaces all of its children with the
provided replacement elements. Returns the original children that were replaced, or
None if no container with the given string ID exists.
§Panics
- If the
Containeris not properly attached to the tree
Sourcepub fn replace_id_with_elements(
&mut self,
replacement: Vec<Container>,
id: usize,
) -> Option<Container>
pub fn replace_id_with_elements( &mut self, replacement: Vec<Container>, id: usize, ) -> Option<Container>
Replaces a container identified by numeric ID with multiple elements.
Finds the container with the given ID and replaces it with the provided replacement
elements. Returns the original container that was replaced, or None if no container
with the given ID exists.
§Panics
- If the
Containeris not properly attached to the tree
Sourcepub fn replace_str_id_with_elements(
&mut self,
replacement: Vec<Container>,
id: &str,
) -> Option<Container>
pub fn replace_str_id_with_elements( &mut self, replacement: Vec<Container>, id: &str, ) -> Option<Container>
Replaces a container identified by string ID with multiple elements.
Finds the container with the given string ID and replaces it with the provided replacement
elements. Returns the original container that was replaced, or None if no container
with the given string ID exists.
§Panics
- If the
Containeris not properly attached to the tree
Source§impl Container
impl Container
Sourcepub fn display_to_string_default(
&self,
with_debug_attrs: bool,
wrap_raw_in_element: bool,
) -> Result<String, Box<dyn Error>>
pub fn display_to_string_default( &self, with_debug_attrs: bool, wrap_raw_in_element: bool, ) -> Result<String, Box<dyn Error>>
Converts this container to an HTML string with default formatting.
Generates HTML representation of the container and its children with basic options.
For more control over formatting and syntax highlighting, use display_to_string.
§Errors
- If fails to write to the writer
- If invalid UTF-8 characters
Sourcepub fn display_to_string_default_pretty(
&self,
with_debug_attrs: bool,
wrap_raw_in_element: bool,
) -> Result<String, Box<dyn Error>>
pub fn display_to_string_default_pretty( &self, with_debug_attrs: bool, wrap_raw_in_element: bool, ) -> Result<String, Box<dyn Error>>
Converts this container to a formatted HTML string with syntax highlighting.
Generates HTML representation of the container and its children with pretty formatting and syntax highlighting enabled (if the respective features are enabled).
§Errors
- If fails to write to the writer
- If invalid UTF-8 characters
Sourcepub fn display_to_string(
&self,
with_debug_attrs: bool,
wrap_raw_in_element: bool,
format: bool,
) -> Result<String, Box<dyn Error>>
pub fn display_to_string( &self, with_debug_attrs: bool, wrap_raw_in_element: bool, format: bool, ) -> Result<String, Box<dyn Error>>
Converts this container to an HTML string with full formatting control.
Generates HTML representation of the container and its children with options for debug attributes, raw element wrapping, formatting, and syntax highlighting.
§Errors
- If fails to write to the writer
- If invalid UTF-8 characters
§Panics
- If syntax highlighting fails
Source§impl Container
impl Container
Sourcepub fn table_iter<'a, 'b>(&'a self) -> TableIter<'b>where
'a: 'b,
pub fn table_iter<'a, 'b>(&'a self) -> TableIter<'b>where
'a: 'b,
Sourcepub fn table_iter_mut<'a, 'b>(&'a mut self) -> TableIterMut<'b>where
'a: 'b,
pub fn table_iter_mut<'a, 'b>(&'a mut self) -> TableIterMut<'b>where
'a: 'b,
Creates a mutable iterator over table rows and heading cells.
Returns a TableIterMut that provides mutable iterators over the table’s heading row
(if present) and body rows. Each row iterator yields mutable references to cell containers.
§Panics
Will panic if Element is not a table
Sourcepub fn table_iter_mut_with_observer<'a, 'b>(
&'a mut self,
observer: Option<impl FnMut(&mut Container)>,
) -> TableIterMut<'b>where
'a: 'b,
pub fn table_iter_mut_with_observer<'a, 'b>(
&'a mut self,
observer: Option<impl FnMut(&mut Container)>,
) -> TableIterMut<'b>where
'a: 'b,
Creates a mutable iterator over table rows with an observer callback.
Returns a TableIterMut that provides mutable iterators over the table’s heading row
(if present) and body rows. The optional observer function is called for each row element
during iteration, allowing for side effects or validation.
§Panics
Will panic if Element is not a table