pub struct NodeData<H> {Show 20 fields
pub kind: PieceKind,
pub handle: Option<H>,
pub parent: RNode,
pub children: Vec<RNode>,
pub layout: Rc<dyn Layout>,
pub flex: Flex,
pub scope: Scope,
pub id: Option<String>,
pub parked_id: Option<String>,
pub a11y: A11yProps,
pub cache: Vec<((u64, u64), Size)>,
pub baseline_cache: Option<((u64, u64), Option<f64>)>,
pub probe: NodeProbe,
pub needs_measure: bool,
pub needs_layout: bool,
pub last_native_frame: Option<Rect>,
pub is_boundary: bool,
pub scroll_content: Option<Size>,
pub implicit_anim: Option<AnimSpec>,
pub tweaked: bool,
}Fields§
§kind: PieceKind§handle: Option<H>§parent: RNode§children: Vec<RNode>§layout: Rc<dyn Layout>§flex: Flex§scope: Scope§id: Option<String>§parked_id: Option<String>The id a recycled cell’s node carried before subtree recycling parked it
(docs/list.md). A pooled row must stop answering lookups while it is hidden, but its
next bind may show the same row content again (a slot write of an unchanged value,
which fires no reactive id_of and re-runs no static .id()), so the parked id is what
restore_subtree_ids hands back on rebind.
a11y: A11yPropsAccumulated accessibility annotations (§13): merged from the piece default, .a11y(),
and .id(). Stored so each set_a11y re-applies the full picture and a11y_audit
(§14.2) can diff the native tree against Day’s own expectation.
cache: Vec<((u64, u64), Size)>§baseline_cache: Option<((u64, u64), Option<f64>)>The last (size, first baseline) this node answered (docs/baseline.md). One slot, not a
list: a baseline is asked for at the size the row already settled on, so the query
repeats at one size per pass. Invalidated with needs_measure, alongside cache.
probe: NodeProbe§needs_measure: bool§needs_layout: boolPlacement dirt reaches the root even through measure boundaries. Recycled cell subtrees are detached from the window tree, so their sweep must see this bit.
last_native_frame: Option<Rect>§is_boundary: bool§scroll_content: Option<Size>Scroll-content size reported by ScrollLayout (§7.6); scroll nodes only. Cached so
scroll_to_target can compose edge targets (bottom = content minus viewport).
implicit_anim: Option<AnimSpec>Node-scoped implicit animation (.animation(anim), §8.4): when set, this node’s property
patches and frame changes animate even outside a with_animation. The ambient animation
(with_animation) takes precedence when both are present.
tweaked: boolA .tweak closure (or a per-toolkit ext modifier, which routes through it) ran against
this node’s handle (docs/tweaks.md). Read by set_node_selectable: a backing swap would
discard that work, which warrants a loud warning rather than silent loss.
Auto Trait Implementations§
impl<H> !RefUnwindSafe for NodeData<H>
impl<H> !Send for NodeData<H>
impl<H> !Sync for NodeData<H>
impl<H> !UnwindSafe for NodeData<H>
impl<H> Freeze for NodeData<H>
impl<H> Unpin for NodeData<H>
impl<H> UnsafeUnpin for NodeData<H>where
Option<H>: UnsafeUnpin,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more