func newTreapNode(key, value []byte, priority int) *treapNode {
	return &treapNode{key: key, value: value, priority: priority}
}
newTreapNode returns a new node from the given key, value, and priority.  The
node is not initially linked to any others.
package treap
import (
	"math/rand"
	"time"
)
const (
	staticDepth = 128
	nodeFieldsSize = 72
)
var (
	emptySlice = make([]byte, 0)
)
type treapNode struct {
	key      []byte
	value    []byte
	priority int
	left     *treapNode
	right    *treapNode
}
func nodeSize(node *treapNode) uint64 {
	return nodeFieldsSize + uint64(len(node.key)+len(node.value))
}