Struct Element

Source
pub struct Element<A> {
    pub id: ElementId,
    pub widget_id: WidgetId,
    pub key: Option<Key>,
    pub kind: ElementKind<A>,
    pub dirty: DirtyFlags,
    pub parent: Option<ElementId>,
    pub children: Vec<ElementId>,
    pub layout: Option<LayoutResult>,
    pub flex_item: FlexItemStyle,
    pub size_hint: LayoutSizeHint,
    pub layout_debug: Option<LayoutDebugInfo>,
    /* private fields */
}
Expand description

One node in an super::ElementTree.

Public fields expose retained state for framework integration. Mutating relationships or layout directly can violate tree/cache invariants; prefer super::ElementTree methods when available.

§Examples

use ailloli_ui_runtime::element::{ElementKind, ElementTree};
let mut tree = ElementTree::<()>::new();
let id = tree.create_element(ElementKind::Empty, None, None);
let element = tree.get(id).unwrap();
assert_eq!(element.id, id);
assert!(element.dirty.layout && element.layout.is_none());

Fields§

§id: ElementId

Stable element identity allocated by its tree.

§widget_id: WidgetId

Stable widget-facing identity allocated alongside the element.

§key: Option<Key>

Optional reconciliation key; None selects positional matching.

§kind: ElementKind<A>

Empty, widget, or component payload.

§dirty: DirtyFlags

Pending layout, paint, and input work.

§parent: Option<ElementId>

Retained parent ID, or None for a root/detached node.

§children: Vec<ElementId>

Direct children in layout, paint, hit-test, and reconciliation order.

§layout: Option<LayoutResult>

Most recent authoritative layout, or None before a committed pass.

§flex_item: FlexItemStyle

Flex behavior when this element is a direct flex-container child.

§size_hint: LayoutSizeHint

Declarative width and height hints used by parent layout.

§layout_debug: Option<LayoutDebugInfo>

Latest developer-tooling layout record, or None before layout.

Trait Implementations§

Source§

impl<A> Clone for Element<A>

Clones an element snapshot, including retained relationships and cache state.

Source§

fn clone(&self) -> Self

Produces a structural clone whose reference-counted payload stays shared.

1.0.0 · Source§

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

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl<A> Freeze for Element<A>

§

impl<A> !RefUnwindSafe for Element<A>

§

impl<A> !Send for Element<A>

§

impl<A> !Sync for Element<A>

§

impl<A> Unpin for Element<A>

§

impl<A> !UnwindSafe for Element<A>

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<A> IntoClickAction<A> for A
where A: Clone + 'static,

Source§

fn into_click_action(self) -> ClickAction<A>

Implements the into_click_action helper used by this module.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> Props for T
where T: Clone + 'static,