pub trait SortableWeave<K, N, T>: Weave<K, N, T>{
// Required methods
fn get_ordered_node_identifiers_mirrored(&mut self, output: &mut Vec<K>);
fn get_ordered_node_identifiers_mirrored_from(
&mut self,
id: &K,
output: &mut Vec<K>,
);
fn sort_node_children_by(
&mut self,
id: &K,
cmp: impl FnMut(&N, &N) -> Ordering,
) -> bool;
fn sort_node_children_by_id(
&mut self,
id: &K,
cmp: impl FnMut(&K, &K) -> Ordering,
) -> bool;
fn sort_roots_by(&mut self, cmp: impl FnMut(&N, &N) -> Ordering);
fn sort_roots_by_id(&mut self, cmp: impl FnMut(&K, &K) -> Ordering);
}Expand description
A Weave where the ordering of nodes is stable and can be user-defined.
Required Methods§
Sourcefn get_ordered_node_identifiers_mirrored(&mut self, output: &mut Vec<K>)
fn get_ordered_node_identifiers_mirrored(&mut self, output: &mut Vec<K>)
Builds a list of all node identifiers ordered by their positions in the Weave.
Unlike Weave::get_ordered_node_identifiers, this function reverses the ordering of node children.
Sourcefn get_ordered_node_identifiers_mirrored_from(
&mut self,
id: &K,
output: &mut Vec<K>,
)
fn get_ordered_node_identifiers_mirrored_from( &mut self, id: &K, output: &mut Vec<K>, )
Recursively builds a list of all children of the specified node ordered by their positions in the Weave.
Unlike Weave::get_ordered_node_identifiers_from, this function reverses the ordering of node children.
Sourcefn sort_node_children_by(
&mut self,
id: &K,
cmp: impl FnMut(&N, &N) -> Ordering,
) -> bool
fn sort_node_children_by( &mut self, id: &K, cmp: impl FnMut(&N, &N) -> Ordering, ) -> bool
Sorts the child nodes of a parent node with the specified identifier using the comparison function cmp.
§Panics
May panic if cmp does not implement a total order, or if cmp itself panics.
Sourcefn sort_node_children_by_id(
&mut self,
id: &K,
cmp: impl FnMut(&K, &K) -> Ordering,
) -> bool
fn sort_node_children_by_id( &mut self, id: &K, cmp: impl FnMut(&K, &K) -> Ordering, ) -> bool
Sorts the identifiers of a parent node’s children with the specified identifier using the comparison function cmp.
§Panics
May panic if cmp does not implement a total order, or if cmp itself panics.
Sourcefn sort_roots_by(&mut self, cmp: impl FnMut(&N, &N) -> Ordering)
fn sort_roots_by(&mut self, cmp: impl FnMut(&N, &N) -> Ordering)
Sorts “root” nodes (nodes which do not have any parents) using the comparison function cmp.
§Panics
May panic if cmp does not implement a total order, or if cmp itself panics.
Sourcefn sort_roots_by_id(&mut self, cmp: impl FnMut(&K, &K) -> Ordering)
fn sort_roots_by_id(&mut self, cmp: impl FnMut(&K, &K) -> Ordering)
Sorts the identifiers of “root” nodes (nodes which do not have any parents) using the comparison function cmp.
§Panics
May panic if cmp does not implement a total order, or if cmp itself panics.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".