pub struct NodeChildren { /* private fields */ }
Expand description
A concrete implementation of the Children
trait using a vector of boxed nodes.
NodeChildren
is the primary implementation for storing and managing
collections of tree nodes. It provides efficient access, modification,
and iteration over child nodes.
§Examples
use lipgloss_tree::{NodeChildren, Leaf, Children};
let mut children = NodeChildren::new();
children.append(Box::new(Leaf::new("First", false)));
children.append(Box::new(Leaf::new("Second", false)));
assert_eq!(children.length(), 2);
Implementations§
Source§impl NodeChildren
impl NodeChildren
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new empty NodeChildren
collection.
§Examples
use lipgloss_tree::{NodeChildren, Children};
let children = NodeChildren::new();
assert_eq!(children.length(), 0);
Sourcepub fn from_nodes(nodes: Vec<Box<dyn Node>>) -> Self
pub fn from_nodes(nodes: Vec<Box<dyn Node>>) -> Self
Creates a NodeChildren
collection from a vector of boxed nodes.
§Arguments
nodes
- A vector of boxed nodes to initialize the collection with
§Examples
use lipgloss_tree::{NodeChildren, Leaf, Children};
let nodes = vec![
Box::new(Leaf::new("A", false)) as Box<dyn lipgloss_tree::Node>,
Box::new(Leaf::new("B", false)) as Box<dyn lipgloss_tree::Node>,
];
let children = NodeChildren::from_nodes(nodes);
assert_eq!(children.length(), 2);
Sourcepub fn append(&mut self, child: Box<dyn Node>)
pub fn append(&mut self, child: Box<dyn Node>)
Appends a child node to the end of the collection.
§Arguments
child
- The boxed node to add to the collection
§Examples
use lipgloss_tree::{NodeChildren, Leaf, Children};
let mut children = NodeChildren::new();
children.append(Box::new(Leaf::new("New Item", false)));
assert_eq!(children.length(), 1);
Sourcepub fn remove(&mut self, index: usize) -> Option<Box<dyn Node>>
pub fn remove(&mut self, index: usize) -> Option<Box<dyn Node>>
Removes and returns the child node at the given index.
§Arguments
index
- The zero-based index of the node to remove
§Returns
The removed node if the index was valid, or None
if out of bounds
§Examples
use lipgloss_tree::{NodeChildren, Leaf, Children};
let mut children = NodeChildren::new();
children.append(Box::new(Leaf::new("Remove me", false)));
let removed = children.remove(0);
assert!(removed.is_some());
assert_eq!(children.length(), 0);
Sourcepub fn at_mut(&mut self, index: usize) -> Option<&mut Box<dyn Node>>
pub fn at_mut(&mut self, index: usize) -> Option<&mut Box<dyn Node>>
Returns a mutable reference to the boxed node at the given index.
This allows you to modify the node in place or replace it entirely.
§Arguments
index
- The zero-based index of the desired node
§Returns
A mutable reference to the boxed node, or None
if the index is out of bounds
§Examples
use lipgloss_tree::{NodeChildren, Leaf, Node};
let mut children = NodeChildren::new();
children.append(Box::new(Leaf::new("Original", false)));
if let Some(node) = children.at_mut(0) {
node.set_value("Modified".to_string());
}
Trait Implementations§
Source§impl Children for NodeChildren
impl Children for NodeChildren
Source§impl Clone for NodeChildren
impl Clone for NodeChildren
Auto Trait Implementations§
impl Freeze for NodeChildren
impl !RefUnwindSafe for NodeChildren
impl !Send for NodeChildren
impl !Sync for NodeChildren
impl Unpin for NodeChildren
impl !UnwindSafe for NodeChildren
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Convert the source color to the destination color using the specified
method.
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Convert the source color to the destination color using the bradford
method by default.
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Cast a collection of colors into a collection of arrays.
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
Cast this collection of arrays into a collection of colors.
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
Mutably borrows from an owned value. Read more
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
The number type that’s used in
parameters
when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
Converts
self
into C
, using the provided parameters.Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
Cast a collection of colors into a collection of color components.
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
Performs a conversion from
angle
.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
Converts
other
into Self
, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
Performs a conversion into
T
.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
The number type that’s used in
parameters
when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
Converts
self
into C
, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
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>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
Convert into T. The resulting color might be invalid in its color space Read more
Source§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
Converts
self
into T
, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
The error for when
try_into_colors
fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Try to cast this collection of color components into a collection of
colors. Read more
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
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