equal.go 299 Bytes
Newer Older
Petar Maymounkov's avatar
Petar Maymounkov committed
1 2 3 4 5 6
package trie

import (
	"github.com/libp2p/go-libp2p-xor/key"
)

7
func Equal(p, q *Trie) bool {
Petar Maymounkov's avatar
Petar Maymounkov committed
8
	switch {
9
	case p.IsLeaf() && q.IsLeaf():
Petar Maymounkov's avatar
Petar Maymounkov committed
10
		return key.Equal(p.Key, q.Key)
11
	case !p.IsLeaf() && !q.IsLeaf():
Petar Maymounkov's avatar
Petar Maymounkov committed
12
		return Equal(p.Branch[0], q.Branch[0]) && Equal(p.Branch[1], q.Branch[1])
Petar Maymounkov's avatar
Petar Maymounkov committed
13 14 15
	}
	return false
}