func (itr cLevelDBIterator) Domain() ([]byte, []byte) {
	return itr.start, itr.end
}
Domain implements Iterator.
package cleveldb
import (
	"bytes"
	"github.com/jmhodges/levigo"
	tmdb "github.com/tendermint/tm-db"
)
type cLevelDBIterator struct {
	source     *levigo.Iterator
	start, end []byte
	isReverse  bool
	isInvalid  bool
}
var _ tmdb.Iterator = (*cLevelDBIterator)(nil)
func newCLevelDBIterator(source *levigo.Iterator, start, end []byte, isReverse bool) *cLevelDBIterator {
	if isReverse {
		if len(end) == 0 {
			source.SeekToLast()
		} else {
			source.Seek(end)
			if source.Valid() {
				eoakey := source.Key()  
				if bytes.Compare(end, eoakey) <= 0 {
					source.Prev()
				}
			} else {
				source.SeekToLast()
			}
		}
	} else {
		if len(start) == 0 {
			source.SeekToFirst()
		} else {
			source.Seek(start)
		}
	}
	return &cLevelDBIterator{
		source:    source,
		start:     start,
		end:       end,
		isReverse: isReverse,
		isInvalid: false,
	}
}