Struct iced_native::widget::tree::Tree

source ·
pub struct Tree {
    pub tag: Tag,
    pub state: State,
    pub children: Vec<Tree>,
}
Expand description

A persistent state widget tree.

A Tree is normally associated with a specific widget in the widget tree.

Fields§

§tag: Tag

The tag of the Tree.

§state: State

The State of the Tree.

§children: Vec<Tree>

The children of the root widget of the Tree.

Implementations§

source§

impl Tree

source

pub fn empty() -> Self

Creates an empty, stateless Tree with no children.

source

pub fn new<'a, Message, Renderer>(
    widget: impl Borrow<dyn Widget<Message, Renderer> + 'a>
) -> Selfwhere
    Renderer: Renderer,

Creates a new Tree for the provided Widget.

source

pub fn diff<'a, Message, Renderer>(
    &mut self,
    new: impl Borrow<dyn Widget<Message, Renderer> + 'a>
)where
    Renderer: Renderer,

Reconciliates the current tree with the provided Widget.

If the tag of the Widget matches the tag of the Tree, then the Widget proceeds with the reconciliation (i.e. Widget::diff is called).

Otherwise, the whole Tree is recreated.

source

pub fn diff_children<'a, Message, Renderer>(
    &mut self,
    new_children: &[impl Borrow<dyn Widget<Message, Renderer> + 'a>]
)where
    Renderer: Renderer,

Reconciliates the children of the tree with the provided list of widgets.

source

pub fn diff_children_custom<T>(
    &mut self,
    new_children: &[T],
    diff: impl Fn(&mut Tree, &T),
    new_state: impl Fn(&T) -> Self
)

Reconciliates the children of the tree with the provided list of widgets using custom logic both for diffing and creating new widget state.

Trait Implementations§

source§

impl Debug for Tree

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Tree

§

impl !Send for Tree

§

impl !Sync for Tree

§

impl Unpin for Tree

§

impl !UnwindSafe for Tree

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
    T: FloatComponent,
    Swp: WhitePoint,
    Dwp: WhitePoint,
    D: AdaptFrom<S, Swp, Dwp, T>,

source§

fn adapt_into_using<M>(self, method: M) -> Dwhere
    M: TransformMatrix<Swp, Dwp, T>,

Convert the source color to the destination color using the specified method
source§

fn adapt_into(self) -> D

Convert the source color to the destination color using the bradford method by default
source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

const: unstable · 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, U> IntoColor<U> for Twhere
    U: FromColor<T>,

source§

fn into_color(self) -> U

Convert into T with values clamped to the color defined bounds Read more
source§

impl<T, U> IntoColorUnclamped<U> for Twhere
    U: FromColorUnclamped<T>,

source§

fn into_color_unclamped(self) -> U

Convert into T. The resulting color might be invalid in its color space Read more
source§

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

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

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

§

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

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

impl<T, U> TryIntoColor<U> for Twhere
    U: TryFromColor<T>,

source§

fn try_into_color(self) -> Result<U, OutOfBounds<U>>

Convert into T, returning ok if the color is inside of its defined range, otherwise an OutOfBounds error is returned which contains the unclamped color. Read more
§

impl<V, T> VZip<V> for Twhere
    V: MultiLane<T>,

§

fn vzip(self) -> V