prune method

void prune()

Prunes the DiffNode tree.

If a child DiffNode has nothing added, removed, changed, nor a node, then it will be deleted from the parent's node Map.

Implementation

void prune() {
  var keys = node.keys.toList();
  for (var i = keys.length - 1; i >= 0; i--) {
    final key = keys[i];
    final d = node[key]!;
    d.prune();
    if (d.hasNothing) {
      node.remove(key);
    }
  }
}