+++ /dev/null
-// Copyright (c) 2014, Suryandaru Triandana <syndtr@gmail.com>
-// All rights reserved.
-//
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package util
-
-// Range is a key range.
-type Range struct {
- // Start of the key range, include in the range.
- Start []byte
-
- // Limit of the key range, not include in the range.
- Limit []byte
-}
-
-// BytesPrefix returns key range that satisfy the given prefix.
-// This only applicable for the standard 'bytes comparer'.
-func BytesPrefix(prefix []byte) *Range {
- var limit []byte
- for i := len(prefix) - 1; i >= 0; i-- {
- c := prefix[i]
- if c < 0xff {
- limit = make([]byte, i+1)
- copy(limit, prefix)
- limit[i] = c + 1
- break
- }
- }
- return &Range{prefix, limit}
-}