visit method

void visit(
  1. RadixTreeNode<T> node,
  2. String prefixAllowed,
  3. String prefix,
  4. RadixTreeKVVisitor<T?> visitor,
)

Visits the given node of this tree with the given prefix and visitor.

Also, recursively visits the left/right subtrees of this node.

Implementation

void visit(RadixTreeNode<T> node, String prefixAllowed, String prefix,
    RadixTreeKVVisitor<T?> visitor) {
  if (node.hasValue && prefix.startsWith(prefixAllowed)) {
    visitor(prefix, node.value);
  }

  final prefixLength = prefix.length;

  for (final child in node) {
    if (prefixAllowed.length <= prefixLength ||
        child.prefix[0] == prefixAllowed[prefixLength]) {
      visit(child, prefixAllowed, prefix + child.prefix, visitor);
    }
  }
}