equal.go 297 Bytes
Newer Older
Petar Maymounkov's avatar
Petar Maymounkov committed
1 2 3
package trie

import (
tavit ohanian's avatar
tavit ohanian committed
4
	"gitlab.dms3.io/p2p/go-p2p-xor/key"
Petar Maymounkov's avatar
Petar Maymounkov committed
5 6
)

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
}