diff --git a/hashring/rbtree.go b/hashring/rbtree.go index f99524be..d543459f 100644 --- a/hashring/rbtree.go +++ b/hashring/rbtree.go @@ -261,10 +261,10 @@ func (n *redBlackNode) search(key keytype) (valuetype, bool) { return nil, false } -// walk Walks the tree in sorted order invoking `walker` for each node. If the -// walker function returns `false`, walking is stopped and no more nodes will be +// traverseUntil traverses the nodes in the tree in-order invoking `traverse` for each node. If the +// traverse function returns `false`, traversal is stopped and no more nodes will be // visited. Returns `true` if all nodes are visited; `false` if not. -func (n *redBlackNode) walk(walker func(*redBlackNode) bool) bool { +func (n *redBlackNode) traverseUntil(traverse func(*redBlackNode) bool) bool { if n == nil { // the end of the tree does not signal the end of walking, but we can't // walk this node (nil) nor left or right anymore @@ -272,17 +272,17 @@ func (n *redBlackNode) walk(walker func(*redBlackNode) bool) bool { } // walk left first - if !n.left.walk(walker) { + if !n.left.traverseUntil(traverse) { // stop if walker indicated to break return false } // now visit this node - if !walker(n) { + if !traverse(n) { // stop if walker indicated to break return false } // lastly visit right - if !n.right.walk(walker) { + if !n.right.traverseUntil(traverse) { // stop if walker indicated to break return false } diff --git a/hashring/rbtree_test.go b/hashring/rbtree_test.go index b497fd74..b45a65bc 100644 --- a/hashring/rbtree_test.go +++ b/hashring/rbtree_test.go @@ -637,7 +637,7 @@ func TestBig(t *testing.T) { assert.NoError(t, err, "expected tree to be a valid red black tree") } -func TestWalkInOrder(t *testing.T) { +func TestTraverseOrder(t *testing.T) { tree := makeTree() // 4,B @@ -650,7 +650,7 @@ func TestWalkInOrder(t *testing.T) { var last keytype - tree.root.walk(func(n *redBlackNode) bool { + tree.root.traverseUntil(func(n *redBlackNode) bool { current := n.key if last != nil { assert.True(t, current.Compare(last) > 0, "expected walk to walk the nodes in natural order as dictated by the Compare function") @@ -660,7 +660,7 @@ func TestWalkInOrder(t *testing.T) { }) } -func TestWalkEscape(t *testing.T) { +func TestTraverseEscape(t *testing.T) { tree := makeTree() // 4,B @@ -673,7 +673,7 @@ func TestWalkEscape(t *testing.T) { var visited []int - tree.root.walk(func(n *redBlackNode) bool { + tree.root.traverseUntil(func(n *redBlackNode) bool { number := int(n.key.(treeTestInt)) visited = append(visited, number) // stop at node 5, it should exit on a left, right and visiting node,