mapTree<T, T1 extends TreeNode<Object>> function

T1 mapTree<T, T1 extends TreeNode<Object>>(
  1. TreeNode<T> root,
  2. T1 createNode(
    1. T value,
    2. Iterable<T1> children
    )
)

Map every node in a tree to an new node type. It may be used for converting from one specialized TreeNode implementation to another, or for converting each TreeNode value from type T to type NewT for example.

Implementation

T1 mapTree<T, T1 extends TreeNode<Object>>(
  TreeNode<T> root,
  T1 Function(T value, Iterable<T1> children) createNode,
) {
  final newEdges = root.edges.map((edge) => mapTree(edge, createNode));
  return createNode(root.value, newEdges);
}