pub struct FrameWorkPlan { /* private fields */ }Expand description
Provider-neutral aggregate consumed by a presentation host.
Element identifiers and propagation roots deliberately do not cross this boundary. The runtime retains those details for incremental reconciliation and layout.
The fields are intentionally private: hosts can ask which frame stages are necessary but cannot infer or manipulate retained element roots.
§Examples
use ailloli_ui_runtime::app::{FrameWorkPlan, Invalidation};
let plan = FrameWorkPlan::from_invalidation(Invalidation::Layout);
assert!(!plan.needs_build());
assert!(plan.needs_layout() && plan.needs_paint());Implementations§
Source§impl FrameWorkPlan
Provides the operations defined for FrameWorkPlan.
impl FrameWorkPlan
Provides the operations defined for FrameWorkPlan.
Sourcepub const fn none() -> Self
pub const fn none() -> Self
Returns a plan with no build, layout, or paint work.
This equals Default::default.
§Examples
use ailloli_ui_runtime::app::FrameWorkPlan;
assert_eq!(FrameWorkPlan::none(), FrameWorkPlan::default());
assert!(FrameWorkPlan::none().is_empty());Sourcepub const fn from_invalidation(invalidation: Invalidation) -> Self
pub const fn from_invalidation(invalidation: Invalidation) -> Self
Converts one invalidation strength into its implied frame stages.
Paint maps to paint only; layout maps to layout plus paint; build maps to all three stages.
§Examples
use ailloli_ui_runtime::app::{FrameWorkPlan, Invalidation};
let plan = FrameWorkPlan::from_invalidation(Invalidation::Build);
assert!(plan.needs_build() && plan.needs_layout() && plan.needs_paint());Sourcepub const fn needs_build(self) -> bool
pub const fn needs_build(self) -> bool
Returns whether component reconciliation/build work is required.
§Examples
use ailloli_ui_runtime::app::{FrameWorkPlan, Invalidation};
assert!(FrameWorkPlan::from_invalidation(Invalidation::Build).needs_build());
assert!(!FrameWorkPlan::from_invalidation(Invalidation::Layout).needs_build());Sourcepub const fn needs_layout(self) -> bool
pub const fn needs_layout(self) -> bool
Returns whether retained layout work is required.
§Examples
use ailloli_ui_runtime::app::{FrameWorkPlan, Invalidation};
assert!(FrameWorkPlan::from_invalidation(Invalidation::Layout).needs_layout());
assert!(!FrameWorkPlan::from_invalidation(Invalidation::Paint).needs_layout());Sourcepub const fn needs_paint(self) -> bool
pub const fn needs_paint(self) -> bool
Returns whether scene painting is required.
§Examples
use ailloli_ui_runtime::app::{FrameWorkPlan, Invalidation};
assert!(FrameWorkPlan::from_invalidation(Invalidation::Paint).needs_paint());
assert!(!FrameWorkPlan::none().needs_paint());Sourcepub const fn is_empty(self) -> bool
pub const fn is_empty(self) -> bool
Returns true exactly when painting is not required.
Public constructors preserve the invariant that build/layout imply paint, so this is equivalent to all stages being false.
§Examples
use ailloli_ui_runtime::app::{FrameWorkPlan, Invalidation};
assert!(FrameWorkPlan::none().is_empty());
assert!(!FrameWorkPlan::from_invalidation(Invalidation::Paint).is_empty());Sourcepub const fn merge(self, other: Self) -> Self
pub const fn merge(self, other: Self) -> Self
Combines two plans by OR-ing each stage flag.
§Examples
use ailloli_ui_runtime::app::{FrameWorkPlan, Invalidation};
let plan = FrameWorkPlan::none().merge(FrameWorkPlan::from_invalidation(Invalidation::Layout));
assert!(!plan.needs_build());
assert!(plan.needs_layout() && plan.needs_paint());Trait Implementations§
Source§impl Clone for FrameWorkPlan
impl Clone for FrameWorkPlan
Source§fn clone(&self) -> FrameWorkPlan
fn clone(&self) -> FrameWorkPlan
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FrameWorkPlan
impl Debug for FrameWorkPlan
Source§impl Default for FrameWorkPlan
impl Default for FrameWorkPlan
Source§fn default() -> FrameWorkPlan
fn default() -> FrameWorkPlan
Source§impl PartialEq for FrameWorkPlan
impl PartialEq for FrameWorkPlan
impl Copy for FrameWorkPlan
impl Eq for FrameWorkPlan
impl StructuralPartialEq for FrameWorkPlan
Auto Trait Implementations§
impl Freeze for FrameWorkPlan
impl RefUnwindSafe for FrameWorkPlan
impl Send for FrameWorkPlan
impl Sync for FrameWorkPlan
impl Unpin for FrameWorkPlan
impl UnwindSafe for FrameWorkPlan
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<A> IntoClickAction<A> for Awhere
A: Clone + 'static,
impl<A> IntoClickAction<A> for Awhere
A: Clone + 'static,
Source§fn into_click_action(self) -> ClickAction<A>
fn into_click_action(self) -> ClickAction<A>
Implements the into_click_action helper used by this module.