equal.go 302 Bytes
Newer Older
Petar Maymounkov's avatar
Petar Maymounkov committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
package trie

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

func Equal(p, q *XorTrie) bool {
	switch {
	case p.isLeaf() && q.isLeaf():
		return key.Equal(p.key, q.key)
	case !p.isLeaf() && !q.isLeaf():
		return Equal(p.branch[0], q.branch[0]) && Equal(p.branch[1], q.branch[1])
	}
	return false
}