func (it *Iterator) Seek(key []byte) (found bool) {
	var next *node
	_, next, found = it.seekForBaseSplice(key)
	present := it.setNode(next, false)
	return found && present
}
Seek searches for the record with the given key. If it is present in the
skiplist, then Seek positions the iterator on that record and returns true.
If the record is not present, then Seek positions the iterator on the
following node (if it exists) and returns false.
package arenaskl
import (
	"runtime"
	"sync/atomic"
	"unsafe"
)
type splice struct {
	prev *node
	next *node
}
func (s *splice) init(prev, next *node) {
	s.prev = prev
	s.next = next
}
type Iterator struct {
	list  *Skiplist
	arena *Arena
	nd    *node
	value uint64
}
func (it *Iterator) Init(list *Skiplist) {
	it.list = list
	it.arena = list.arena
	it.nd = nil
	it.value = 0
}
func (it *Iterator) Valid() bool { return it.nd != nil }
func (it *Iterator) Key() []byte {
	return it.nd.getKey(it.arena)
}
func (it *Iterator) Value() []byte {
	valOffset, valSize := decodeValue(it.value)
	return it.arena.GetBytes(valOffset, uint32(valSize))
}
func (it *Iterator) Meta() uint16 {
	return decodeMeta(it.value)
}
func (it *Iterator) Next() {
	next := it.list.getNext(it.nd, 0)
	it.setNode(next, false)
}
func (it *Iterator) Prev() {
	prev := it.list.getPrev(it.nd, 0)
	it.setNode(prev, true)
}