pub struct LayoutInputNode {
pub id: NodeId,
pub parent_id: Option<NodeId>,
pub op: LayoutOp,
pub children_ids: Vec<NodeId>,
pub debug_name: String,
pub width: Option<LayoutUnit>,
pub height: Option<LayoutUnit>,
pub flex_grow: LayoutUnit,
pub flex_shrink: LayoutUnit,
pub rich_text: Option<Vec<TextRun>>,
}Expand description
A flattened representation of a layout node, ready for the layout engine.
The widget compiler produces a list of LayoutInputNodes from the IR. Each node
carries its layout operation, parent/child relationships, flex participation
parameters, and optional rich text content for text measurement.
The layout engine operates on &[LayoutInputNode] rather than traversing the
IR directly, which keeps the engine decoupled from the IR’s internal structure.
Fields§
§id: NodeIdThe unique identity of this node.
parent_id: Option<NodeId>The parent node’s ID, or None for the root.
op: LayoutOpThe layout operation this node performs.
children_ids: Vec<NodeId>Ordered list of child node IDs.
debug_name: StringA human-readable name for debugging and diagnostics.
width: Option<LayoutUnit>Explicit width override, or None to derive from constraints.
height: Option<LayoutUnit>Explicit height override, or None to derive from constraints.
flex_grow: LayoutUnitHow much extra main-axis space this node claims from its flex parent.
flex_shrink: LayoutUnitHow much this node shrinks when its flex parent overflows.
rich_text: Option<Vec<TextRun>>Optional rich text content. When present, the layout engine uses the
TextMeasurer to determine the node’s intrinsic size from the text.
Trait Implementations§
Source§impl Clone for LayoutInputNode
impl Clone for LayoutInputNode
Source§fn clone(&self) -> LayoutInputNode
fn clone(&self) -> LayoutInputNode
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more