visitKey method
Visits the given node of this tree with the given key and visitor.
Implementation
void visitKey(
RadixTreeNode<T> node,
String key,
String prefix,
RadixTreeKVVisitor<T?> visitor,
) {
if (node.hasValue && prefix == key) {
visitor(prefix, node.value);
return;
}
var prefixLength = prefix.length;
if (key.length > prefixLength) {
// Search the children only if there's more key remaining.
// Unfortunately this is O(|your_alphabet|)
for (var child in node.children) {
if (child.prefix[0] == key[prefixLength]) {
return visitKey(child, key, prefix + child.prefix, visitor);
}
}
}
}