pub trait Algorithm {
type Node: Copy + Clone + Hash + Eq;
// Required methods
fn new() -> Self;
fn new_node(
&mut self,
style: ViewStyle,
children: &[Self::Node],
) -> Self::Node;
fn new_leaf(&mut self, style: ViewStyle, measure: MeasureFunc) -> Self::Node;
fn add_child(&mut self, parent: Self::Node, child: Self::Node);
fn remove_child(&mut self, parent: Self::Node, child: Self::Node);
fn child_count(&self, parent: Self::Node) -> usize;
fn remove(&mut self, node: Self::Node);
fn set_style(&mut self, node: Self::Node, style: ViewStyle);
fn set_measure(&mut self, node: Self::Node, measure: MeasureFunc);
fn compute_layout(&mut self, node: Self::Node, size: Size<Dimension<f32>>);
fn layout(&self, node: Self::Node) -> Layout;
}Expand description
Abstract interface of a flexbox algorithm.
Required Associated Types§
Required Methods§
Sourcefn new_node(&mut self, style: ViewStyle, children: &[Self::Node]) -> Self::Node
fn new_node(&mut self, style: ViewStyle, children: &[Self::Node]) -> Self::Node
Create a new node with the given child nodes.
Sourcefn new_leaf(&mut self, style: ViewStyle, measure: MeasureFunc) -> Self::Node
fn new_leaf(&mut self, style: ViewStyle, measure: MeasureFunc) -> Self::Node
Create a new leaf with an intrinsic content size that is determined by the given measure function.
Sourcefn add_child(&mut self, parent: Self::Node, child: Self::Node)
fn add_child(&mut self, parent: Self::Node, child: Self::Node)
Add a child node to a parent node.
Sourcefn remove_child(&mut self, parent: Self::Node, child: Self::Node)
fn remove_child(&mut self, parent: Self::Node, child: Self::Node)
Remove a child node from a parent node.
Sourcefn child_count(&self, parent: Self::Node) -> usize
fn child_count(&self, parent: Self::Node) -> usize
Returns the number of child nodes of a specific parent node.
Sourcefn set_style(&mut self, node: Self::Node, style: ViewStyle)
fn set_style(&mut self, node: Self::Node, style: ViewStyle)
Updates the style of a specific node within this flexbox.
Sourcefn set_measure(&mut self, node: Self::Node, measure: MeasureFunc)
fn set_measure(&mut self, node: Self::Node, measure: MeasureFunc)
Updates the measure function of a specific node within this flexbox.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.