Skip to main content

LayoutInputNode

Struct LayoutInputNode 

Source
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: NodeId

The unique identity of this node.

§parent_id: Option<NodeId>

The parent node’s ID, or None for the root.

§op: LayoutOp

The layout operation this node performs.

§children_ids: Vec<NodeId>

Ordered list of child node IDs.

§debug_name: String

A 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: LayoutUnit

How much extra main-axis space this node claims from its flex parent.

§flex_shrink: LayoutUnit

How 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

Source§

fn clone(&self) -> LayoutInputNode

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for LayoutInputNode

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.