diff options
author | 2016-03-28 18:26:14 +0100 | |
---|---|---|
committer | 2016-03-28 18:26:14 +0100 | |
commit | 1a455f7bc4c24f472e6fd441b2b145047d1325b2 (patch) | |
tree | 77a644f6fe28f3de8eaf6f7c766cea73b438b487 /middleware/file/tree | |
parent | 6324bb1fa7c0516ef3bebfb822a0cdc767764ad2 (diff) | |
parent | e56d206542c901a48b28c4501fe5805e9e9e1a10 (diff) | |
download | coredns-1a455f7bc4c24f472e6fd441b2b145047d1325b2.tar.gz coredns-1a455f7bc4c24f472e6fd441b2b145047d1325b2.tar.zst coredns-1a455f7bc4c24f472e6fd441b2b145047d1325b2.zip |
Merge pull request #55 from miekg/transfer-out
Transfer out
Diffstat (limited to 'middleware/file/tree')
-rw-r--r-- | middleware/file/tree/all.go | 21 | ||||
-rw-r--r-- | middleware/file/tree/tree.go | 2 |
2 files changed, 23 insertions, 0 deletions
diff --git a/middleware/file/tree/all.go b/middleware/file/tree/all.go new file mode 100644 index 000000000..f621e3465 --- /dev/null +++ b/middleware/file/tree/all.go @@ -0,0 +1,21 @@ +package tree + +// All traverses tree and returns all elements +func (t *Tree) All() []*Elem { + if t.Root == nil { + return nil + } + found := t.Root.all(nil) + return found +} + +func (n *Node) all(found []*Elem) []*Elem { + if n.Left != nil { + found = n.Left.all(found) + } + found = append(found, n.Elem) + if n.Right != nil { + found = n.Right.all(found) + } + return found +} diff --git a/middleware/file/tree/tree.go b/middleware/file/tree/tree.go index db57c2092..234060eba 100644 --- a/middleware/file/tree/tree.go +++ b/middleware/file/tree/tree.go @@ -528,6 +528,8 @@ func (n *Node) floor(rr dns.RR) *Node { return n } +// TODO(successor, predecessor) + // Ceil returns the smallest value equal to or greater than the query q according to q.Compare(). func (t *Tree) Ceil(rr dns.RR) *Elem { if t.Root == nil { |